Ich rufe alle Hacker auf, das hier schneller hinzubekommen! Wenn man nämlich den Delimiter als 'Char' ansieht, gehts einfach und fix:
Delphi-Quellcode:
Procedure FasterExplode (Const aString : String; aDel : Char; aToken : TStringList);
Var
i,j,n : Integer;
p : PChar;
Begin
j := 1;
p := @aString[1];
n := Length (aString);
For i := 1 to n do begin
If p[i] = aDel Then begin
aToken.add (Copy (aString, j, i - j));
j := i + 1;
End;
inc (p);
End;
aToken.Add (Copy (aString, j, n - j + 1));
End;
Einzige Bedingung: Der Prozedurkopf muss identisch sein. Alles ist erlaubt!