redim preserve bei 2-dimensionalem Feld: "letzte Datenfelddimension" ?

28/11/2009 - 11:25 von Thomas Hoffmann | Report spam
Tag,

möchte mich mal vergewissern, da folgendes zu Fehler führt:

dim myarr()
redim myarr(1,0)
redim preserve myarr(0,1) 'führt zu fehler Index außerhalb des gültigen Bereiches

wàhrend weglassen von preserve
redim myarr(0,1) 'führt nicht zu fehler
aber
redim preserve myarr(1,1) 'führt auch nicht zu Fehler.

Ich verstehe die OLH so, dass die 'letzte Datenfelddimension' die Dimension hinter dem
letzten Komma ist und nicht die Dimension des letzten Indexes der ersten Ebene.

Ich finde hier die OLH nicht eindeutig. Mach ich hier was falsch?
Gruß und Dank TH

Thomas Hoffmann
 

Lesen sie die antworten

#1 Peter Götz
28/11/2009 - 12:12 | Warnen spam
Hallo Thomas,

möchte mich mal vergewissern, da folgendes zu Fehler führt:

dim myarr()
redim myarr(1,0)
redim preserve myarr(0,1) 'führt zu fehler Index außerhalb des gültigen
Bereiches



Das löst einen Fehler aus, weil bei "preserve" nur die letzte
Dimension veràndert werden darf.

In der Online-Hilfe steht dazu:
If you use the Preserve keyword, you can resize only the
last array dimension and you can't change the number
of dimensions at all.


wàhrend weglassen von preserve
redim myarr(0,1) 'führt nicht zu fehler



Auch dieses Verhalten entspricht dem, was in der
Online-Hilfe steht:
You can use the ReDim statement repeatedly to change
the number of elements and dimensions in an array.

aber
redim preserve myarr(1,1) 'führt auch nicht zu Fehler.



Dabei hast Du nur die letzte Dimenson geàndert und das
ist lt. Online-Hilfe (s.oben) erlaubt.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen