Zitat von
inriz:
Ich habe eine Funktion namens GetTokenList. Diese Funktion nimmt einen String entgegen (separiert durch ':'), splittet diesen
anhand des Separators auf und schreibt alles in ein Objekt vom Typ TStringList.
Diese TStringList wird in der Funktion allokiert und die Referenz dieses Objektes wird zurückgegeben.
Genau das würde
Delphi-Quellcode:
function TfmAppPanel.GetTokenList(sCommand, sSeparator : string) : TStringList;
begin
Result := TStringList.Create;
Result.Delimiter := Seperator;
Result.DelimitedText := sCommand;
end;
machen.
Beispiel :
Delphi-Quellcode:
var s : String;
tokenList : TStringList;
begin
s := 'a:b:c:Irgendetwas:...';
tokenList := GetTokenList(s, ':');
// tokenList.Count = 5,
// tokenList.Strings[0] = 'a'
// tokenList.Strings[1] = 'b'
// tokenList.Strings[2] = 'c'
// tokenList.Strings[3] = 'Irgendetwas'
// tokenList.Strings[4] = '...'
end;
Oder hab ich dich falsch verstanden? Werde mir mal gleich deinen Code anschauen, moment
Ja, ist genau das was deine Funktion auch macht nur schon gekapselt. By the way, eine TStringList arbeitet auf den DelimitedText wie ein StringTokenizer (wenn ein Delimitter vorhanden ist), nich auf Text. Wenn du also wie gepostet vorgehst, stehen in der StringList wie bei deinem Ergebnis die einzelnen Token drin
[Edit]Code angesehen und letzten Absatz eingefügt[/Edit]