Zitat von
Luckie:
Delphi-Quellcode:
function GetId(const f: string; const i: integer): string;
var temp: String; sl: TStrings;
begin
temp := '';
sl := TStringList.Create;
try
sl.LoadFromFile(f);
temp := Copy(sl[0], i*6, 5);
finally
result := temp;
FreeAndNil(sl);
end;
end;
So sollte es gehen.
warum steckt man die zuweisung von "result" mit ins finally. bzw. wozu überhaupt "finally" alles was immer ausgefüht werden soll kann man doch auch hinter den try-Block setzen und stattdessen ein try-Except block machen das nur bei einer
Exception eine sonderbehandlung statt findet
Delphi-Quellcode:
function GetId(const f: string; const i: integer): string;
var temp: String; sl: TStrings;
begin
sl := TStringList.Create;
try
sl.LoadFromFile(f);
temp := Copy(sl[0], i*6, 5);
except
temp := '';
end;
FreeAndNil(sl);
result := temp;
end;
die variante mit finally kommt ja dieser gleich:
Delphi-Quellcode:
function GetId(const f: string; const i: integer): string;
var temp: String; sl: TStrings;
begin
temp := '';
sl := TStringList.Create;
try
sl.LoadFromFile(f);
temp := Copy(sl[0], i*6, 5);
except
end;
result := temp;
FreeAndNil(sl);
end;