Knapp vom Unwissenden geschlagen, aber als Alternative taugst allemal:
Du musst den String so aufteilen:
1.Teil: Alles vor dem '->'
3.Teil: Alles ab dem LETZTEN Komma
2.Teil Alles zwischen 1.Teil und 3.Teil, aber ohne die Trenner.
Beim 2.Teil noch "art : " vorne abschneiden (also 6 Zeichen).
Na, das ist doch einfach:
Delphi-Quellcode:
Procedure MatthiasSeinStringAufteiler (
Const aStr :
String;
Var Teil1, Teil2, Teil3 :
String);
// Teilt einen String BLA->art : FOO,BAR in die 3 Teile BLA, FOO und BAR
Var
i,j : Integer;
Begin
i := Pos ('
->',aStr);
Teil1 := Trim (Copy (aStr,1,i-1));
inc (i,2);
// i steht jetzt auf dem 'a' von 'art : FOO'
Inc (i,6);
// wenn immer'art : ' da steht, also 6 Zeichen, einfach rüberhüpfen
j := Length (aStr);
While aStr[j]<>'
,'
do dec (j);
// Letztes Komma suchen
Teil2 := Trim (Copy (aStr, i, j-i));
Teil3 := Trim (Copy (aStr, j+1, maxint));
End;
Achtung: Die Routine verhält sich komisch, wenn der String anders aussieht, weil keine Plausibilitätsprüfung eingebaut wurde.