@jfheins: deine function StrRev arbeitet sehr langsam, da mit (fast) jedem Zeichen im Speicher eine neue Reservierung vorgenommen werden muss.
Hier die schnelle Alternative aus der JCL:
Delphi-Quellcode:
function StrReverse(
const S: AnsiString): AnsiString;
begin
Result := S;
StrReverseInplace(Result);
end;
procedure StrReverseInPlace(
var S: AnsiString);
var
P1, P2: PChar;
C: AnsiChar;
begin
UniqueString(S);
P1 := PChar(S);
P2 := P1 + SizeOf(AnsiChar) * (Length(S) - 1);
while P1 < P2
do
begin
C := P1^;
P1^ := P2^;
P2^ := C;
Inc(P1);
Dec(P2);
end;
end;