Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Maximale Größe für Records beim Speichern mit TFileStream? (https://www.delphipraxis.net/162445-maximale-groesse-fuer-records-beim-speichern-mit-tfilestream.html)

jus 23. Aug 2011 11:08

Delphi-Version: 2007

Maximale Größe für Records beim Speichern mit TFileStream?
 
Hallo,

ich habe da ein myteriöses Problem beim Speichern von Records mit TFileStream mit writebuffer hängt sich dieser in einer Endlosschleife bei einer Ausgabe mit Memo-Feld auf/ oder der schreibt nicht das rein, was ich haben will. Meine Frage ist gibt es für Records eine maximale Grösse mit writebuffer? Ich frage das nämlich deswegen, weil ich vorher mit einer kleineren Recordversion nie Probleme mit dem Speichern gehabt habe.

Lg,
jus

himitsu 23. Aug 2011 12:04

AW: Maximale Größe für Records beim Speichern mit TFileStream?
 
Nein, es gibt da kein Sperre ... abgesehn von den maximal 2/4 GB für Write, WriteBuffer, Read und ReadBuffer (bin mir grade nicher sicher, ob Cardinal oder Integer)
und an diese Grenze wirst du garantiert nicht gestoßen sein.


Wie sieht dein Record aus und wie speicherst du diesen?

Und was meinst du mit "bei einer Ausgabe mit Memo-Feld"?

Bernhard Geyer 23. Aug 2011 12:06

AW: Maximale Größe für Records beim Speichern mit TFileStream?
 
Zitat:

Zitat von jus (Beitrag 1118870)
... einer Ausgabe mit Memo-Feld auf ...

Wie soll das Memo-Feld bei einem Record aussehen?

jus 25. Aug 2011 23:03

AW: Maximale Größe für Records beim Speichern mit TFileStream?
 
Zitat:

Zitat von himitsu (Beitrag 1118899)
Nein, es gibt da kein Sperre ... abgesehn von den maximal 2/4 GB für Write, WriteBuffer, Read und ReadBuffer (bin mir grade nicher sicher, ob Cardinal oder Integer)
und an diese Grenze wirst du garantiert nicht gestoßen sein.


Wie sieht dein Record aus und wie speicherst du diesen?

Und was meinst du mit "bei einer Ausgabe mit Memo-Feld"?

Danke für eure Antworten. Ich war am Ende mit meinem Latein und habe dann die wildesten Theorien aufgestellt. :oops: Intuitiv kann ich mir auch nicht vorstellen, dass bei Record abgesehen von der 32bit Schranke 2/4GB eine Beschränkung existiert. Aber man kann ja nie wissen. 8-)
Um kurz noch auf die Frage zu antworten, ich speichere den Record mit der Filestream Methode Writebuffer.
Letztendlich meine ich, dass ich den Fehler gefunden habe. Der Fehler lag irgendwo in den Aufrufen von WMI. Ich habe nun die Abfragen ohne WMI gelöst und es scheint alles reibungslos zu funktionieren. Was ich aber extrem arg finde ist, dass meine Abfragen mit WMI anscheinend dazu geführt haben, dass auch Programmcode überschrieben wurde. Ich hatte plötzlich in meinem Programm eine Endlosschleife drin, wo im Sourcecode keine war. In diesem Zusammenhang hatte ich das mit das mit Memo-Feld(Memo.Lines.Add...) erwähnt. Ein weiterer Nebeneffekt war, dass Writebuffer irgendwie einen falschen Speicherbereich vom Record in die Datei schrieb.
Ein kurzes Resümee, das "Record abspeichern" Problem ist gelöst und ich muß mich mal wirklich mit WMI-Aufrufe beschäftigen, um irgendwelche Speicherlecks zu umgehen.

Lg,
jus

himitsu 26. Aug 2011 08:03

AW: Maximale Größe für Records beim Speichern mit TFileStream?
 
Kommt drauf an, welche der wenigen WMI-Komponenten du verwendest.

Einige haben nette nur Speicherlecks und Andere können bestimmt auch schonmal den einen oder anderen Bufferoverun besitzen. :angle2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz