Ein Tip zum Zerlegen des Strings ist die TStringList. Schau dir da mal die Eigenschaften Delimiter, StrictDelimiter und DelimitedText an, damit hast du deinen String schon mal auf einfachste Weise zerlegt.
Das andere Problem wurde ja von Patti schon fast komplett gelöst:
Delphi-Quellcode:
type
TMeinTyp = (mtSpieltag, mtNachname); //Alle weiteren kannst du ergänzen
function GetString(AStr : string; AWas : TMeinTyp) : String;
begin
case AWas of
mtSpieltag: begin
Result := ... //Hier kommt die richtige Zuweisung hin
end;
mtNachname: ... //usw.
end;
end;
Edit: Variante mit TStringList. Ungetestet.
Delphi-Quellcode:
type
TSubString = (ssSpieltag, ssNachname, ssVorname, ssTippstring);
function GetString(AStr: String; const ASubString: TSubString): String;
var
sl: TStringList;
begin
sl := TStringList.Create;
sl.Delimiter := '|';
sl.StrictDelimiter := True;
sl.DelimitedText := AStr;
Result := sl.Strings[Integer(ASubString)];
sl.Free;
end;