Hier ist mein Beitrag; 5x schneller als die Variante von Uwe Raabe. Das Ende der Fahnenstange ist bestimmt noch nicht erreicht.
Delphi-Quellcode:
Type
THexLookup = Array [WideChar] Of Integer;
Var
HexLookup : ^THexLookup;
Procedure BuildHexLookup;
Var
w : Word;
s : String;
Begin
New(HexLookup);
for w := 0 to 65535 do begin
s := IntToHex(w,4);
Move(s[1], HexLookup^[WideChar(w)],4);
end;
End;
function FurtbichlerStrToHex(const s: Widestring): string;
var
i : Integer;
p : PIntegerArray;
begin
SetLength(Result, 4*Length(s));
p := @Result[1];
for i := 1 to Length(s) do
p^[i-1] := HexLookup^[s[i]];
end;
...
initialization
BuildHexLookup;
Mhmm, irgendwas scheint da nicht zu funktionieren - das Programm braucht nun ca. 100 mal länger als vorher, um den Code auszuführen. Ich verstehe den Code nicht, deswegen kann ich nicht sagen, wo der Fehler liegt.