Ich habe die Version von Christian einfach mal probeweise mit der Mengenabfrage probiert.
Und das Ergebnis ist, 145 ms zu 45ms mit der Mengenabfrage! So sieht der momentan schnellste Code aus:
Delphi-Quellcode:
function ClearStr4(const Str: string): String;
const
ValidChars = ['a'..'z','A'..'Z','ä','ö','ü','Ä','Ö','Ü','ß',' '];
var
i,x,count: Integer;
begin
if Str = '' then Exit;
result:= '';
count:= 1;
SetLength(Result, Length(Str));
for i:= 1 to Length(Str) do
begin
if str[i] in ValidChars then //Hier fragen wir die Menge ab.
begin
Result[Count]:= Str[i];
Inc(Count);
end;
end;
SetLength(result, Count-1);
end;
Tabelle schlägt Menge ist hiermit wiederlegt. Mit FastMM4 und FastMove.pas gibt es nochmals einen Geschwindigkeitsschub.
Im Anhang die einzelnen Exen und den Source incl. der Exen beigefügt.
[Edit: Move.pas heißt FastMove.pas und //Break... aus Source entfernt]