Habe mal meine Funktion entsprechend angepasst:
Delphi-Quellcode:
function RemoveCharsFromString(const AStr, CharsToRemove: String): string;
var
I, J: Integer;
L: array[Char] of Boolean;
begin
FillChar(L, SizeOf(L), #0);
for I := 1 to Length(CharsToRemove) do
begin
L[CharsToRemove[I]] := true;
end;
SetLength(Result, Length(AStr));
J := 1;
for I := 1 to Length(AStr) do
begin
if (not L[AStr[I]]) then
begin
Result[J] := AStr[I];
J := J + 1;
end;
end;
SetLength(Result, J - 1);
end;
Ist sogar interessanterweise schneller als mein Ursprünglicher Code mit dem Set. Amateurprofis Funktion hat ähnliche Performance.
Code:
Zacherl (set): 641
Zacherl (lookup): 438
Amateurprofi: 500