Es ist relativ einfach. Du erstellst in deiner Funktion (vielleicht sogar direkt in der Result-Variable) eine Instanz von TStringList, die du dann bearbeitest und zurücklieferst.
Delphi-Quellcode:
procedure SplitString(Str: String; Chr: Char);
var newStr,Buffer:String;
Schleife: Integer;
Foo: TStringList;
begin
Foo := TStringList.Create;
newStr := Str + Chr;
if(Pos(Chr,newStr) <> Length(newStr)) then
for Schleife := 1 to Length(newStr) do
begin
if(newStr[Schleife] <> Chr) then
Buffer := Buffer + newStr[Schleife]
else begin
Foo.Add(Buffer);
Buffer := '';
end
end
else
Foo.Add(Str);
Result := Foo;
end;