Jetzt gibt es unter Umständen (aber mit beiden Funktionen) Probleme, wenn Anfang und Ende des Trenners gleich sind. 'abababa' mit Trenner 'bab' sollte zum Beispiel 'a' und 'aba' ergeben, ergibt aber 'a', 'a', 'a' und 'aba' (obwohl NumToken als Anzahl '3' Ausgibt)
//Edit:
scheinbar gibt es generell Probleme mit längeren Trennern.
'testte##sttest' und '##':
NumToken: 2, stimmt
GetToken: 'testte', 'testte', '#sttest'
//Edit:
So funktionierts:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| function GetToken(source, token: string; number: integer):string; var c:integer; t:string; begin if (pos(token,source) = 0) then begin if (number = 1) then result:=source else result:=''; exit; end; t := source; for c:= 0 to (number-1) do Delete(t,1,_Pos(token,t)+length(token)-1); if (Pos(token,t) > 0) then result := copy(t,1,pos(token,t)-1) else result:=t; end; |