Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Bytes auf ein Integer auffädeln

  Alt 7. Sep 2018, 08:18
Ich benutze in solchen Fällen gerne variante Records:
Delphi-Quellcode:
  TMyRec = packed record
    case tag : byte of
      0 : (b1 : Byte;
           b2 : Byte;
           b3 : Byte;
           b4 : Byte);
      1 : (MyInt : Integer);
  end;
Mit deinem Beispiel müsste es dann so funktionieren:
Delphi-Quellcode:
var
  vRec : TMyRec;
begin
  vRec.MyInt := 0; // Initialisierung. Damit sind die b-Werte auch initialisiert
  vRec.b1 := $10;
  vRec.b2 := $5f;
end;
Bei der Reihenfolge der Byte-Werte weiß ich leider nicht mehr genau, wie das ganz korrekt sein muss. Ich meine, dass das Mixed Endian ist. Für das Beispiel ist es jedenfalls korrekt.
Das kannst du aber einfach prüfen, indem du Testwerte bei MyInt einträgst und nachsiehst, was bei den einzelnen Byte-Werten steht.

Einen Link, wie das in Delphi tatsächlich ist, habe ich auf die Schnelle leider nicht gefunden.
Peter
  Mit Zitat antworten Zitat