Zumindestens könnte man das Speichermanagement verbessern
und das ginge auch schon in den Vorgänger-Delphi-Versionen.
Delphi-Quellcode:
function StripString(const sTemp: String; const ValidChars: TSysCharSet): String;
var c : Char;
i : Integer;
begin
i := 0;
for c in sTemp do
if CharInSet(c, ValidChars) then Inc(i);
SetLength(Result, i);
i := 0;
for c in sTemp do
if CharInSet(c, ValidChars) then
begin
Inc(i);
Result[i] := c;
end;
end;
Auch wenn es mehr aussieht, ist es so im Endefekt sogar eine Berechnung weniger, je Durchlauf.
Delphi-Quellcode:
if CharInSet(c, ValidChars) then
begin
Result[i + 1] := c;
Inc(i);
end;