Das hier ist bei einem AMD 64 noch etwas (8%) schneller:
Delphi-Quellcode:
Function RemoveDblSpaces4(const InStr: string): string;
var
Src, Dst: PChar;
begin
SetLength(Result, Length(InStr));
Src := Pointer (InStr);
Dst := Pointer (Result);
while (Src^ > #0) do Begin
If PWord(Src)^ <> $2020 Then Begin // $2020 = 2 Blanks hintereinander
Dst^:= Src^;
inc (Dst);
End;
inc (Src);
end;
SetLength(Result, (Integer(Dst) - Integer(@Result[1])));
end;
Grob getestet, das Gerüst ist von DerDan.