Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dyn Array Speicher Reservierung (https://www.delphipraxis.net/81945-dyn-array-speicher-reservierung.html)

fgb 5. Dez 2006 18:42


Dyn Array Speicher Reservierung
 
Moin,

wie reserviere ich mit SetLength den Speicher für mein Dynamische Array richtig?

Delphi-Quellcode:
TAuswUP = array of array of array of TProzent;

TDatei = Record
        Name: String;
        Groesse: Integer;
        UP: TAuswUP;
 End;

TErkDateien = array of TDateiErken;
  TAuswDatei = array of TDateiErken;
  TAuswProjekt = array of TAuswDatei;

  TAuswertung = array of TAuswProjekt;
Delphi-Quellcode:
var Auswertung: TAuswertung;
SetLength(Auswertung[i][j], Projekte[i].AnzDateien);
Belege ich damit jetzt nur den Speicher Bereich für TAuswDatei?

Delphi-Quellcode:
SetLength(Auswertung[i][j][k], Projekte[i].AnzDateien, Anzahl, Anzahl2);
oder Beleg ich damit alle drei Arrays?

und dann wie kann ich den Speicher für das Array UP im Record reservieren?

gmc616 6. Dez 2006 00:13

Re: Dyn Array Speicher Reservierung
 
Zitat:

Zitat von fgb
... wie kann ich den Speicher für das Array UP im Record reservieren?

Delphi-Quellcode:
var
DeineDatei : TDatei;

...

Setlength (DeineDatei.UP, <Anzahl der Elemente>);
Sorry, aber deine Deklaration deines Array of Array of Array of TBla ist irgendwie nicht nachzuvollziehen. Vielleicht liegt es auch daran, dass ich grad von Skatspielen zurückgekommen bin und mehr als nur zwei Bierchen getrunken habe. :cheers:

Ich versuche Mehr-Als-Zwei-Dimensionale Arrays zu vermeiden, da sie später von mir selbst nicht mehr lesbar sind. Vielleicht versuchst du dein Array bzw. deine Daten in eine Form zu bringen, die du auch nach 1 .. 2 Jahren wieder problemlos verstehen kannst.

Deine Deklaration mag durchaus funktionieren, ist aber für Ausenstehen schwer nachzuvollziehen.

Prost :drunken:
gmc

Edit: *Hicks*

fgb 6. Dez 2006 17:10

Re: Dyn Array Speicher Reservierung
 
das ist blöd, weil mir keine bessere lösung einfällt.

Dax 6. Dez 2006 17:37

Re: Dyn Array Speicher Reservierung
 
SetLength ist, was Arrayspeicherreservierungen angeht, quasi eine eierlegende Wollmilchsau. Sowas wie
Delphi-Quellcode:
SetLength(Auswertung, 1, 2, 3, 4);
ist problemlos möglich - und erzeugt dir damit ein
Delphi-Quellcode:
array[0..0] of array[0..1] of array[0..2] of array[0..3] of TDateiErken
Nur eben dynamisch statt statisch.

Hoffe, das hat deine Frage beantwortet.

Jolan'tru

fgb 8. Dez 2006 22:00

Re: Dyn Array Speicher Reservierung
 
Jo danke wahr hilfreich.


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