Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Typecasting eines Arrays von Byte und Schreiben in verschiedene Variablen in Delp

  Alt 24. Feb 2020, 09:59
Also wenn du wirklich eine Struktur (packed record) hast die sich 1:1 auf die Bytes abbilden lässt die du bekommst dann gibt es das schon fertig mit TBitConverter aus System.Types :

Delphi-Quellcode:
uses
   System.SysUtils,
   System.Types;

type
   TAppData = packed record
      someInteger:   Int32;
      someTimestamp:   TDateTime;
      // usw.
   end;

procedure p();
const
   data: TBytes =
      [103, 18, 0, 0] // 4711
      +
      [0, 0, 0, 0, 160, 109, 229, 64]; // 2020, 02, 24
var
   appData: TAppData;
begin
   appData := TBitConverter.InTo<TAppData>(data);
end;

Um ganz ehrlich zu sein habe ich das früher auch so gemacht, mir es aber mittlerweile abgewöhnt. Am besten gönnt man sich das Getippe von ein paar Zeilen für die Konvertierung zwischen den rohen Bytes und der Datenstruktur wie man sie in seinem Programm abbilden möchte. Da lässt sich auch wesentlich besser testen und auf Sonderfälle reagieren.

Geändert von Der schöne Günther (24. Feb 2020 um 10:02 Uhr)
  Mit Zitat antworten Zitat