Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#13

AW: meminifiles, inifiles , einlesen scheitert

  Alt 22. Okt 2021, 18:27
Delphi-Quellcode:
procedure TForm2.ReadPointlist3Dfile(filename: string);
var
  AptList: TPointList3DAlign;
begin
  if not FileExists(filename) then begin
    MessageDlg(Format('Datei %s wurde nicht gefunden.',[ExtractFileName(Filename)]),mtError,[mbOk],0);
    exit;
  end;
  AptList := TPointList3DAlign.Create;
  try
    AptList.LoadfromFile(filename);
    CopyPointList2Memo(AptList, 'debug 3D', Memo3);
  finally
    AptList.Free; // oder muss AptList nicht freigegben werden???
  end;
end;
Delphi-Quellcode:
procedure TForm2.ReadInifile(filename: string);
var
  aini: TInifile;
  Sections: TStringlist;
begin
  if not FileExists(filename) then begin
    MessageDlg(Format('Datei %s wurde nicht gefunden.',[ExtractFileName(Filename)]),mtError,[mbOk],0);
    exit;
  end;
  aini := TInifile.Create(filename);
  try
    Sections := TStringlist.Create;
    try
      aini.ReadSections(Sections);
      Memo2.Lines.AddStrings(Sections);
    finally
      Sections.Free; // Damit die Freigabe auch bei Fehlern erfolgt.
    end;
  finally
    aini.Free; // Damit die Freigabe auch bei Fehlern erfolgt.
  end;
end;
Wenn in der ursprünglichen Routine einmal ein Fehler auftritt, bleibt (schlimmstenfalls) der Zugriff auf die Datei "Filename" bestehen und wenn Du Pech hast, ist die Datei (dauerhaft) blockiert. (Kommt halt auf die jeweils verwendeten Zugriffsrechte auf Dateiebene an.)

Wenn
Zitat:
eine andere *.ini Datei, im anderen Ordner mit der selben Delphi Anwendung geschieben funktioniert perfekt
, heißt das nicht, dass man auf jegliche Fehlerbehandlung und die gesicherte Freigabe von Objekten, ... verzichten kann.

Fehlerbehandlung und Ressourcenschutzblöcke sind halt nicht für den funktionierenden Normalfall, sondern für die Ausnahmen-/Fehlerbehandlung erforderlich, damit eben auch dann "normal" weitergearbeitet werden kann und nicht "irgendwie, irgendwo, irgendwann" nicht nachvollziehbare "Spätfolgen" auftreten.
  Mit Zitat antworten Zitat