Hier meine Version, die besonders bei längeren Strings recht flott arbeitet.
Zu einigen anderen Vorschlägen die auf TSysCharSet basieren.
Ich finde, die Vorschläge gehen an der Fragestellung vorbei, denn es war ja nicht gefragt,
Zeichen zu entfernen, die in einem TSysCharSet enthalten sind, sondern Zeichen, die
in einem anderen
String enthalten sind.
In dem Zusammenhang :
Was macht ihr, wenn Zeichen zu entfernen sind, die keine Ansizeichen sind z.B. '√'
Delphi-Quellcode:
FUNCTION RemoveChars(const S,Remove:String):String;
type
TBA=Array[Char] of Boolean;
TPBA=^TBA;
var P:TPBA; I,J:Integer; C:Char;
begin
P:=AllocMem(SizeOf(TBA));
for I:=1 to Length(Remove) do P[Remove[I]]:=True;
SetLength(Result,Length(S));
J:=0;
for I:=1 to Length(S) do begin
C:=S[I];
if not P[C] then begin
Inc(J);
Result[J]:=C;
end;
end;
SetLength(Result,J);
FreeMem(P);
end;