Getestet mit einem 256KiB großen Zufallsstring (bestehend aus 'a'..'z') und CharsToRemove mit 'a' und 'z':
Code:
mm1256 : 656ms
Popov : 1359ms
Zacherl1: 0ms
Soeben auch verglichen...es kommt aber in Zacherl's Ergebnis nicht das selbe raus. Suche noch, woran es liegt
EDIT: So funktionierts tatsächlich am schnellsten:
Delphi-Quellcode:
function RemoveCharsFromString(const AStr, CharsToRemove: string): string;
var
i: Integer;
S: set of Char;
begin
s := [];
for i := 1 to Length(CharsToRemove)
do S := S + [CharsToRemove[i]];
Result := '';
for i := 1 to Length(AStr) do
if not CharInSet(AStr[i],S)
then Result := Result + AStr[i];
end;
Und das Ergebnis stimmt auch
EDIT-2
ooops...Deddy's Variante ist noch schneller. 1 MB Text mit 3 Ersetzungen dauert nur ein paar Ticks....geil
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen