Einzelnen Beitrag anzeigen

Waldteufel
(Gast)

n/a Beiträge
 
#8

Re: Int zu Hex wandeln

  Alt 27. Mai 2005, 17:19
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...
  Mit Zitat antworten Zitat