Für die Umkehrfunktion verwende ich folgende Konstruktion:
Delphi-Quellcode:
function MyStrToIntSafe(const Value: string; const ExceptionResult: Integer): Integer; inline;
begin
try
Result := StrToInt(Value);
except
Result := ExceptionResult;
end;
end;
function MyHexToChar(const s: string; const i: Integer): Char; inline;
begin
Result := Chr(MyStrToIntSafe('$' + Copy(s, i, 4), 63));
end;
function MyHexToStr(s: string): string;
var
i, L: Integer;
begin
Result := '';
L := Length(s);
i := 1;
while i < L do
begin
Result := Result + MyHexToChar(s, i);
Inc(i, 4);
end;
end;
Hier habe ich durch Auslagerung von Schleifeninhalten in inline-Funktionen nochmals eine Geschwindigkeitssteigerung erreicht.