Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Möchten sie 1 oder 2 Gb RAM? (https://www.delphipraxis.net/8202-moechten-sie-1-oder-2-gb-ram.html)

Corelgott 30. Aug 2003 18:14


Möchten sie 1 oder 2 Gb RAM?
 
Hi @ all,

ic habe ein probelm. Und zwar:

Ich habe eine ziemlich große Datei, in der ich immer Kooerdinatenpaare habe. (X & Y)

nun möchte ich das in eine Andere Datei schreiben und zwar erst alle X werte und dann alle Y werte.

Das Problem ist blos, dass bei der menge der Daten (ca. 750.000!) ich das ganze nicht "on the fly" machen kann. Normalerweise würde ich das ganze in ein Dynamischens Array packen und dann wieder weg schreiben. Aber das proggi soll auch noch auf nem Rechner laufen der nicht nen Gig Ram hat.

Also wohin lagere ich die Daten zwischen?
In ner einzelden Datei gibt das ein paar probleme, das ich das ganze nicht ohne weiteres so wegschreiben und dann wieder lesen kann.

Klingt vielleicht ein bischen krank, aber gibt es ne möglichkeit delphi dazu zu überlisten, das er eine Variable nicht in den Ram packt sondern vielleicht auf die Platte?

Hat wer ne idee? Ich würde auch "kranke" sachen versuchen und das ganze zu lösen...

thx Corelgott

gunter 30. Aug 2003 18:28

Re: Möchten sie 1 oder 2 Gb RAM?
 
das geht ganz einfach, und zwar liest du nicht alle Daten auf einmal aus, sondern gehst nach diesem Schema durch die Datei

Öffne Datei1
Öffne Datei2

Lese erste Zeile aus Datei 1
Separiere X-Wert aus der Zeile
Hänge an Datei 2 eine Zeile an und schreibe den X-Wert in Zeile

Lese zweite Zeile aus Datei 1
Separiere X-Wert aus der Zeile
Hänge an Datei 2 eine Zeile an und schreibe den X-Wert in Zeile

...

gehe zum Anfang der beiden Dateien

Lese erste Zeile aus Datei 1
Separiere Y-Wert aus der Zeile
Hänge an die erste Zeile aus Datei 2 den Y-Wert an

Lese zweite Zeile aus Datei 1
Separiere Y-Wert aus der Zeile
Hänge an die zweite Zeile aus Datei 2 den Y-Wert an

...

Schliesse beide Dateien

ich hoffe das hilft
Gunter

Corelgott 31. Aug 2003 14:49

Re: Möchten sie 1 oder 2 Gb RAM?
 
An sich keine schlechte idee, aber:

Wie lange glaubst du brauch man um eine 24MB Datei Byte weise durchzugehen? Und dass dann 2 mal! Einmal dauert schon lange.... verdamt lange... Würde zwar gehen, aber ich würde ungeren mit nem P133 eine 2x 15min brauchen....

thx Corelgott

czapie 31. Aug 2003 15:16

Re: Möchten sie 1 oder 2 Gb RAM?
 
Hi,

ich meine du hast schon recht, das daurt lange, aber gunters Vorschlag ist denk ich gut, denn wie schon gesagt, über dynamische Datenstrukturen zu gehen, also Arrays Listen usw. , bedeutet alles in den Ram zu werfen. Über auf der Festplatte vorhandene Dateien zu gehen, is meines Wissens der einzige Weg. Auch wenn esl lange dauert, das Problem wird gelöst, oder.
Viel Erfolg,

Czapie.

Nimoee 31. Aug 2003 16:10

Re: Möchten sie 1 oder 2 Gb RAM?
 
hallo,

ich versteh nicht so ganz dein Problem. Was hast du 750000 mal real oder 750000 mal word oder long integer;
Ich behandele bei meinem Feldberechnungsprogramm Matrizen von einer Grösse 10000*10000 das sind 500 MB, also vergleichweise viel mehr als bei dir.
Ich halt die Dinger im RAM, wozu gibts ne Auslagerungsdatei.
Rechne mal genau nach, du kommst höchstens auf 10MB. Wer hat die nicht?
Also ich glaub nicht dass das Problem real besteht!

nimoee


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