![]() |
Freigeben von Records
Hey.
habe gerade beim Durchtesten gemerkt, dass mein Programm zunehmend Arbeitsspeicher frisst, je länger ich es benutze. Arbeite mittlerweile viel mit versch. Records. Jetzt schließe ich immer die offenen Record-Dateien, wenn ich eine Form verlasse und öffne sie wieder, wenn ich sie brauche. Muss ich nicht aber doch den Speicher noch freigeben? Dachte so:
Delphi-Quellcode:
Das mag der Compiler aber nicht:
datei.free;
Delphi-Quellcode:
gebe ich
Objekt, Klassentyp oder Record erforderlich
Delphi-Quellcode:
ein, funzt es auch nicht.
data.free
Ist diese Methode überhaupt notwendig, oder gebe ich den Speicher schon frei, indem ich die Datei schließe? |
Re: Freigeben von Records
Records kan man nicht frei geben. Entweder hält man sie im Speicher (dynamisches Array zum beispiel) oder nicht.
|
Re: Freigeben von Records
Um deine Frage beantworten zu können, wäre es hilfreich, wenn du uns verrätst, von welchem Typ datei bzw. data sind.
MfG Binärbaum |
Re: Freigeben von Records
Also kann ich einfach mit CloseFile die Datei bedenkenlos schließen, ohne dass "Überreste" im Speicher bleiben?
Delphi-Quellcode:
Klar: datei: file of TRecord
data: TRecord |
Re: Freigeben von Records
![]() Jetzt erklär uns doch mal näher, was du da machst, sonst ist das hier nur ein Rumgerate ins blaue. :roll: |
Re: Freigeben von Records
Ok,
ich habe im FormActive die Prozedure "Assign". Dann lese oder schreibe ich die Daten mit seek, read und write. Wenn ich dann dieses Formular verlasse, habe ich die Prozedur "CloseFile". Ein Array benutze ich garnicht... |
Re: Freigeben von Records
Dann dürftest du auch nichts mehr im Speicher haben, wenn dein Record, in dem du die Daten einlist, lokal ist.
|
Re: Freigeben von Records
OK,
dann sage ich mal wieder "danke" |
Re: Freigeben von Records
Die Methode .Free wird z.B. bei TFileStream benötigt, um den Speicher freizugeben.
Bei typisierten Dateien, wie du sie verwendest, gibt es keine Methode Free. Deswegen vermute ich, dass das Speicherleck irgendwo anders in deinem Programm liegt. MfG Binärbaum |
Re: Freigeben von Records
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz