Ich habe mir vor 170 Jahren diese Funktion geschrieben...:
Delphi-Quellcode:
Function Split (Var S : String; Del : String) : String;
Var
p : Integer;
Begin
p:=pos(Del,S);
if p=0 then Begin
Result:=s;
s:='';
end
else begin
Result := Copy(s,1,p-1);
s:=Copy(s,p+length(Del),length (s));
End;
End;
Die Funktion teilt einen String S beim ersten Auftreten des Trenners Del , schnippelt das Teil vorne weg und liefert den abgetrennten Teil zurück.
Delphi-Quellcode:
S := 'Abc|def';
a := Split (S,'|');
// a = 'Abc' und S = 'def'
b := Split (S,'|');
// b = 'def' und S = ''
Damit kannst Du dein Problem einfach lösen:
Delphi-Quellcode:
function fParse (Count: Integer;S,Char: string): string;
Var
i : Integer;
Begin
For i:=1 to Count Do Result := Split (S,Char);
End;
Die Funktion liefert einen leeren String, wenn es kein 'count'.es Element in dem String gibt.
Eventuell hilft es, den Elemente des Strings in ein Array zu packen, falls Du nicht nur auf ein Element zugreifen willst.
Nebenbei gibt es hier diverse Implementierung der 'explode' Funktion, die das (vermutlich viel besser) macht.