Zitat von
Martin K:
Mit der Freigabe und einem Try...finally-Block könnte es dann so aussehen:
Delphi-Quellcode:
function GetId(f: string; i: integer): string;
var
j: integer;
sl: TStrings;
begin
result := '';
sl := TStringList.Create;
try
sl.LoadFromFile(f);
for j := 0 to 4 do
result := result + sl[0][(i * 6) + j];
finally
FreeAndNil(sl);
end;
end;
Übrigens: Die zusätzliche String-Variable kann man sich auch sparen, wenn man gleich result verwendet
Man kann sich ausserdem noch die Variable "j" sparen.
Delphi-Quellcode:
function GetId(f: string; i: integer): string;
var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.LoadFromFile(f);
result := sl[0][(i*6)] + sl[0][(i*6)+1] + sl[0][(i*6)+2] + sl[0][(i*6)+3] + sl[0][(i*6)+4];
finally
FreeAndNil(sl);
end;
end;
Zitat von
Matze:
Zitat von
Martin K:
Übrigens: Die zusätzliche String-Variable kann man sich auch sparen, wenn man gleich result verwendet
Ich habe irgendwo einmal gelesen, dass man der Result-Variablen möglichst nur ein einziges Mal etwas zuweisen sollte und zwar am Ende der Funktion. In einer Schleife sollte man das nicht machen. Aber wieso, habe ich vergessen.
Ich würde also die ursprüngliche Möglichkeit bevorzugen.
Hm, ich setze Result auch gerne mal am Anfang, für den Fall dass was schiefgeht auf einen eindeutigen Wert. Wenn Du wieder weißt wo das steht, würds mich intressieren, das auch zu lesen. Bzw. welchen Grund dieses hat.