Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 2GB Ram wegen Dynamischen Array (https://www.delphipraxis.net/119567-2gb-ram-wegen-dynamischen-array.html)

Luckie 29. Aug 2008 00:13

Re: 2GB Ram wegen Dynamischen Array
 
Zitat:

Zitat von BeBored
ich versuche ja ein Gleisplanprogramm zu schreiben und dazu benutze ich ein Dynamisches Array mit 4 Dimensionen.
Delphi-Quellcode:
GleisArray: array of array of array of array of string;

Schon alleine dieses Konstrukt, das sieht ja grausam aus, würde mich nach einer besseren Lösung suchen lassen. ;)

BeBored 29. Aug 2008 09:02

Re: 2GB Ram wegen Dynamischen Array
 
Zitat:

Zitat von Medium
Ich wollte dann nur noch anmerken, dass mir die Felder "x" und "y" so vorkommen, als wäre es nicht nur speicherschonender sondern auch nachher im Programm deutlich besser zu handhaben, wenn du diese Werte nicht als klobigen String, sondern als Zahlenwert hälst. String-Konversionen sehen doof aus, und kosten vergleichsweise viel Zeit.

Ja das mache ich mit dem Record jetzt auch so, ist wesentlich bequemer :-)

@Lucky: Ich weiß, aber genau wegen solchen Sachen frage ich ja hier, ich will ja besser werden und man versucht ja immer erst das Problem mit dem vorhandenen Wissen zu lösen :oops:

grenzgaenger 29. Aug 2008 17:31

Re: 2GB Ram wegen Dynamischen Array
 
Zitat:

Zitat von BeBored
Delphi-Quellcode:
GleisArray: array of array of array of array of string;

du weisst schon, was du da machst, z.b. weisst du einen leeren string zu und deine DB hat 100 datensätze ... dann brauchst du erst mal mind. so viel speicher = 6 * 101 * 101 * 101 * 101 wenn deine db dann 1000 sätze zurückliefert brauchst du mind so viel speicher 6 * 1001 * 1001 * 1001 * 1001. das ausmultiplizieren überlass ich dir (mit der hand), damit du 'n bischen gefühl dafür bekommst ;-)

BeBored 29. Aug 2008 19:52

Re: 2GB Ram wegen Dynamischen Array
 
Zitat:

Zitat von grenzgaenger
Zitat:

Zitat von BeBored
Delphi-Quellcode:
GleisArray: array of array of array of array of string;

du weisst schon, was du da machst, z.b. weisst du einen leeren string zu und deine DB hat 100 datensätze ... dann brauchst du erst mal mind. so viel speicher = 6 * 101 * 101 * 101 * 101 wenn deine db dann 1000 sätze zurückliefert brauchst du mind so viel speicher 6 * 1001 * 1001 * 1001 * 1001. das ausmultiplizieren überlass ich dir (mit der hand), damit du 'n bischen gefühl dafür bekommst ;-)

Das Problem ist ja längst erledigt. Ich habe jetzt ein eindimensionales Array mit einem Record. Das die vorherige Methode nicht gut war, war mir schon bewußt und genau aus diesem Grund habe ich mich ja an die DP gewendet. Später werde ich das ganze mit ObjectList machen, aber da muss ich mich erst einmal reinfuchsen.

Jelly 30. Aug 2008 10:22

Re: 2GB Ram wegen Dynamischen Array
 
Zitat:

Zitat von BeBored
Ich habe jetzt ein eindimensionales Array mit einem Record. Das die vorherige Methode nicht gut war, war mir schon bewußt und genau aus diesem Grund habe ich mich ja an die DP gewendet. Später werde ich das ganze mit ObjectList machen, aber da muss ich mich erst einmal reinfuchsen.

Nimm lieber gleich Klassen statt Records. Du hast doch sicherlich auch noch irgendwelche Dinge mit deinen Daten vor. Dazu brauchst du Methoden, und einige davon gehören sicherlich direkt in dein Objekt rein.

Und Methoden, die deine ganze Sammlung an Objekten betreffen, die kannst du z.B. gleich in einer abgeleiteten ObjectList unterbringen, oder mit Collections arbeiten.

BeBored 30. Aug 2008 15:29

Re: 2GB Ram wegen Dynamischen Array
 
Ja genau das habe ich vor, aber das braucht halt ein wenig Zeit da ich mich reinlesen muss. Ab Dienstag beginnt meine Lernwoche :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr.
Seite 2 von 2     12   

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