Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: String umkehren

  Alt 1. Dez 2004, 17:37
@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;
Andreas
  Mit Zitat antworten Zitat