Entwickler-Ecke

Sonstiges (Delphi) - Array-Größe zur Laufzeit ändern


nuschii - Sa 27.07.02 21:25
Titel: Array-Größe zur Laufzeit ändern
Sers Leudz,

ich hätt da mal n kleines Problem:

Gibt es in Delphi, also Object Pascal eine Möglichkeit, die Größe eines im var-Block deklarierten Arrays zur Laufzeit zu ändern? In QBasic hätte ich jetzt einfach REDIM genommen... :?

see ya
Nuschii


DeCodeGuru - Sa 27.07.02 21:36

Hi,

natürlich geht das.

also, du deklarierst die Variable so:

Quelltext
1:
2:
var
myarray: array of Integer;


Die Größe des Arrays kannste mit SetLength einstellen.


Quelltext
1:
SeltLength(myarray,5)                    


Jo, das müsste funktionieren.


GPF - Sa 27.07.02 21:53

Stimmt - der Befehl heißt allerdings SetLength - da hat sich nur ein l versehentlich eingeschlichen.
Um das Array zu 'leeren' benutze
SetLength(myarray, 0)

Die Anzahl der Elemente kannst Du über Length(myarray) erfahren.
Die Indizierung beginnt bei 0 und endet bei Length(myarray)-1
Nicht zwangsweise auf dynamische Arrays bezogen kannst Du auch low(myarray) und high(myarray) verwenden um die untere und obere Indexgrenze zu erfahren. Bei dynamischen Arrays liefert low(myarray) aber immer 0 und high(myarray) immer length(myarray)-1


Tino - So 28.07.02 08:35

Noch zu sagen das dieses Vorgehen erst mit Delphi 4 funktioniert.

Gruß
TINO


nuschii - So 28.07.02 19:18

Na gut, wenn das so einfach is... ich hätte ehrlich gesagt was ziemlich kompliziertes erwartet, wie das sonst bei Object Pascal oft der Fall ist.

Jedenfalls Danke für die Hilfe!

und @ all the admins: Ich muss euch ein großes Lob aussprechen. Das neue Delphi-Forum gefällt mir! Noch besser als das alte. Hier kann man wenigstens direkt mit posten loslegen. Beim alten Forum hab ich vergeblich auf eine Anmeldebestätigung gewartet :( . Also: weiter so!!!

see ya
Nuschii