Thema: Delphi Abstrakter Fehler oO

Einzelnen Beitrag anzeigen

Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Abstrakter Fehler oO

  Alt 17. Sep 2006, 23:32
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.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat