Hallo Zusammen,
Die Methode mit dem packed record gefällt mit sehr gut.
Das Ergebnis von Test1 und Test2 sind identisch.
Ich finde Test1 ist schöner zu lesen.
Eigentlich habe ich gehofft es gibt so etwas wie: MyInt := FReceiveBuffer[11] << FReceiveBuffer[12] << FReceiveBuffer[13];
Ich werde die packed record Methode einsetzen.
Delphi-Quellcode:
TMyIntRec = packed record
case tag : byte of
0 : (b1 : Byte;
b2 : Byte;
b3 : Byte;
b4 : Byte);
1 : (MyInt : Integer);
end;
function Test1:integer;
var MyIntRec: TMyIntRec;
begin
MyIntRec.MyInt := 0;
MyIntRec.b1 := FReceiveBuffer[13];
MyIntRec.b2 := FReceiveBuffer[12];
MyIntRec.b3 := FReceiveBuffer[11];
result := MyIntRec.MyInt;
end;
Delphi-Quellcode:
function Test2:integer;
begin
result := FReceiveBuffer[11];
result := result shl 8;
result := result or FReceiveBuffer[12];
result := result shl 8;
result := result or FReceiveBuffer[13];
end;
Herzlichen Dank an ALLE und einen schönen Tag.
Gruß Kostas