Hi.
@Luckie: Wenn er den Hex-Wert $60708090 hat, will er den String '<FPZ' (#$60#$70#$80#$90)... IntToHex($60708090) gibt aber '60708090' zurück...
So gehts auch (
ein ähnlich
schmutziger Trick wie bei UweR...
):
Delphi-Quellcode:
function ReverseInt(i : integer) : integer; // ungetestet
begin
result := ((i and $000000FF) shl 24) or ((i and $0000FF00) shl 8) or ((i and $00FF0000) shr 8) or ((i and $FF000000) shr 24);
end;
function DasWasMatczekWill(i : integer) : ShortString;
var
p : Pointer;
begin
result[0] := #4;
p := @result[1];
p^ := ReverseInt(i);
end;
@Matczek: Das case of integer heißt, dass der Record - abhängig von einem Feld - seinen Aufbau wechselt, seinen Inhalt jedoch nicht.
Aber warum sendest du nicht direkt den Integer?
Der String enthält ja noch Zusatzinfos (Länge, Referenzzähler oder #0 am Ende)
//edit: Ganz klein und ganz hell...