Forum: Programmieren allgemein
by himitsu,
24. Apr 2009
haben gerade etwas PNt und ich hab auch mal einiges zum "virtuellen" Array mitgeschickt :angle:
OK, ich hab den Inhalt ja interpretiert und dann die Werte einzeln auf eigene Unter-Nodes verteilt :stupid:
(siehe meine letzer Post in himXML)
Forum: Programmieren allgemein
by himitsu,
24. Apr 2009
du kannst ein mehrdimensionales dynamisches Array nicht direkt übergeben.
praktisch müßtst du dir ein temporäres eindimensionales (dynamisches) Array erstellen, darin die Daten speichern lassen und dann die Daten auf dein mehrdimensionales Array umkopieren.
Oder du kannst die Daten stückchenweise speichern lassen (falls das die Speicherfunktion unterstützt) und speichst so jedes UnterArray...
Forum: Programmieren allgemein
by himitsu,
24. Apr 2009
nein, das dynamische Array selber läuft delphiintern über einen Pointer :warn:
bei einem 1-dimensionalem Array kann man das leicht beheben, indem man diesen Zeiger entsprechend (de)referenziet,
aber bei mehrdimensionalen Arrays hast du so nur Einfluß auf den Pointer der 1. Ebene und nicht auf die der Drunterliegenden.
ein dynamisches Array ist wie ein String/AnsiString
ein statisches eher...
Forum: Programmieren allgemein
by himitsu,
24. Apr 2009
... ich editiere wohl zuviel :lol: (siehe oben bei )
aber du weißt, daß dynamische Arrays Pointer sind?
bei Array of Array of liegen die einzelnen werte im Speicher alle als Schlange hintereinander, wärend beim dynamischen Array in den Oberen Ebenen nur Zeiger auf die Arrays liegen und die Werte somit versteut ind nicht schön hintereinander rumliegen.
Forum: Programmieren allgemein
by himitsu,
24. Apr 2009
hab oben was editiert :angel2:
vielleicht fällst es so besser auf, wenn man das trennt ... ergibt Beides das Selbe
ia: Array of Byte;
ia: Array of Array of Byte;
und nu erkennt man auch, warum man es wie mit SetLength bearbeiten kann.
PS: hier kann man natürlich auch jedem Unterarray eine eigene Länge verpassen
(nicht alle Arrays der selben Ebene müssen gleich groß sein)
Forum: Programmieren allgemein
by himitsu,
24. Apr 2009
ia = Array of Array of Byte;
// oder einfach nur
ia = Array of {Types.}TByteDynArray;
// ia: Array of Byte;
SetLength(ia, 768);
For i := 0 to High(ia) do
SetLength(ia, 101);