Einzelnen Beitrag anzeigen

Benutzerbild von KingIR
KingIR

Registriert seit: 19. Feb 2006
81 Beiträge
 
Delphi 2006 Professional
 
#3

Re: TIniFile - Zugriffverletzung??

  Alt 12. Mär 2006, 15:44
Außerdem scheinst du den Speicher den die TINIFiles belegen, nicht wieder freizugeben. Das führt zu sog. Memory Leaks (der Arbeitsspeicher wird bis zum Programmende mit nicht mehr benötigten Daten vollgeschrieben). Also immer wenn du eine Variable (genauer gesagt eine Objekt-Instanz) nicht mehr brauchst, Variablenname.Free() aufrufen. Für Strings, Integers usw. erledigt Delphi das selber, aber für Objekte musst du dich ums Aufräumen kümmern.

Beispiel für deine erste Prozedur:
Delphi-Quellcode:
procedure ExportBase(From,FileName: string; Files: TFileListBox);
var
F,F2: TiniFile;
//...
begin
  //...
  F:=TIniFile.Create(FileName);
  //...
  for i:=0 to Files.Items.Count-1 do begin
    //...
    F2:=TiniFIle.Create(Files.FileName);
    //...
    F2.Free; // <----- Speicher freigeben!
  end;
  F.Free; // <----- Speicher freigeben!
end;
  Mit Zitat antworten Zitat