da sind wieder 3 Speicherlöcher drin:
| mimi hat folgendes geschrieben: |
function TMFA.ExtractFileHeader(Index:Integer):TDateiInfo;
...
DateiHeader:=TStringList.Create;
|
du erzeugst eine Stringlist und gibst die nie wieder frei.
| Zitat: |
...
DateiAW:=TReader.Create(DateiA, 100);
...
|
du erzeugst ein Treader, gibst es aber niemals frei. hier wäre ich mir auch nicht sicher, ob du deswegen nicht auch Probleme bekommst, weil beim destroy evtl noch die Position im stream geändert wird.
| Zitat: |
...
if DateiSignatur <> FileDes then begin
ShowMessage('Es ist keine FileArichver Datei !');
Exit;
end;
|
wenn die if-bedingung wahr wird, wird der Stream nie geschlossen, da das dateiA.free nie erreicht wird.
wenn du Probleme damit hast
MEMPROOF
MEMPROOF diese Programm hilft dir dabei, Speicherlecks zu finden.
Den Umweg über die Stringlist bräuchtest du auch nicht. Treader/Twriter stellt dir schon _Methoden zur Verfügung, mit der du Integer, Strings, Dates etc in einen Stream schreiben/lesen kannst
Mfg Frank