So schwer ist das doch nicht.
Die Funktion Explode aus der CodeLib:
Delphi-Quellcode:
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray{Array of String};
var
SepLen: Integer;
F, P: PChar;
ALen, Index: Integer;
begin
SetLength(Result, 0);
if (S = '') or (Limit < 0) then Exit;
if Separator = '' then
begin
SetLength(Result, 1);
Result[0] := S;
Exit;
end;
SepLen := Length(Separator);
ALen := Limit;
SetLength(Result, ALen);
Index := 0;
P := PChar(S);
while P^ <> #0 do
begin
F := P;
P := AnsiStrPos(P, PChar(Separator));
if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F);
if Index >= ALen then
begin
Inc(ALen, 5);
SetLength(Result, ALen);
end;
SetString(Result[Index], F, P - F);
Inc(Index);
if P^ <> #0 then Inc(P, SepLen);
end;
if Index < ALen then SetLength(Result, Index);
end;
Und ein Beispiel zu deren Verwendung:
Delphi-Quellcode:
Var S: String;
SA: Array of String;
S := '1001|729|999|500000|0'; {S einlesen}
SA := Explode('|', S); {S aufsplitten und in SA speichern}
{'|' = Zeichen mit dei Werte getrennt sind}
SA[0] = '1001' {aufgesplittete Werte}
SA[1] = '729'
SA[2] = '999'
SA[3] = '500000'
SA[4] = '0'