Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Maximale Dateigröße bei AssignFile ? (https://www.delphipraxis.net/139696-maximale-dateigroesse-bei-assignfile.html)

Errraddicator 3. Sep 2009 08:06


Maximale Dateigröße bei AssignFile ?
 
Hiho!

Habe eine kurze Frage:

Und zwar habe ich eine Datei mit SQL-Kommandos (INSERT-Befehle).
Diese Datei enthält div. Millionen Datensätze und ist ca. 6 GB groß.
Wenn ich diese Datei dann in meine Postgresdatenbank via dem Tool psql einspielen will bricht der mir nach ner Zeit ab "Speicher verbraucht".

...

Jetzt dachte ich, ich schreibe mir ein Programm welches die Datei nach jeder millionsten Zeile trennt.
So weit, so gut, gemacht und getan.

Das Problem ist dabei aber, dass das Programm auch hier nach etwas mehr als 2 GB aufhört zu arbeiten.
Ist das ein Problem von Delphi, oder ist das ein Problem von Windows XP und weiß zufällig einer, wie ich das umgehen kann?


Danke im Voraus

cu Patrick

himitsu 3. Sep 2009 08:13

Re: Maximale Dateigröße bei AssignFile ?
 
Diese "alten" Pascal-Funktionen arbeiten nur mit Integer (signed 32 Bit) und demnach ist halt bei 2 GB (31 Bit) Schluß.

Nutze Delphi-Referenz durchsuchenTFileStream oder direkt die WinAPI MSDN-Library durchsuchenCreateFile+MSDN-Library durchsuchenReadFile,
denn die arbeiten mit 64 Bit

Bei diesen Funktionen/Klassen mußt du die Zeilentrennung aber selbst behandeln.
(TStringList geht nicht, da diese ja alles in den Arbeitsspeicher einließt ... bei 6 GB etwas viel)
Du könntest es aber mal hiermit versuchen > Hier im Forum suchenTPartialTextfile

Errraddicator 3. Sep 2009 11:00

Re: Maximale Dateigröße bei AssignFile ?
 
Habs jetzt mit nem Filestream gemacht und nun funzt es, Danke! :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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