Grundsätzlich:
try, nachdem das Objekt erzeugt wurde.
finally, nachdem das Objekt seine Schuldigkeit getan hat und freigegeben wird.
In deinem Fall:
Delphi-Quellcode:
function Tokenize(s: string; index: integer; sep: char): string;
var
sl: TStringList;
begin
sl := TStringList.Create;
try
repeat
if Pos(sep, s) <> 0 then
begin
sl.Add(Copy(s, 1, Pos(sep, s)-1));
Delete(s, 1, Pos(sep, s));
end
else
begin
sl.Add(s);
s := '';
end;
until s = '';
Result := sl.Strings[index-1];
finally
sl.Free
end;
end;