@silent
Nicht schlecht, vor allem wenn mehreres geteilt werden soll. Ist sogar kürzer als das worauf mirage228 verlinkt hat.
Da ChrisH90 immer genau 2 Teile hat, ist es vielleicht etwas umständlich.
kleiner Tipp:
Wenn du in die Repeat-Schleife noch einen Zähler einbaust, kannst'e die Funktion unter umständern noch etwas beschleunigen.
(z.B. wenn der 3. Werte gesucht wird, nach dem 3. Durchgang Repeat verlassen)
Nachtrag (zum Beispiel so):
Delphi-Quellcode:
function strn(s: string; index: integer; sep: char): string;
var
sl: TStringList;
i: integer; {*}
begin
sl := TStringList.Create;
Try
i := 0; {*}
Repeat
inc(i); {*}
if Pos(sep, s) <> 0 then
begin
sl.Add(Copy(s, 1, Pos(sep, s)-1));
Delete(s, 1, Pos(sep, s));
end
else
begin
sl.Add(s);
s := '';
end;
until (s = '') or (i = index); {*}
if index <= sl.Count then
Result := sl.Strings[index-1]
else Result := '';
finally
sl.Free;
end;
end;