Redim Preserve funktioniert nicht

dignsag

Erfahrenes Mitglied
ich mache folgendes:

Code:
Dim i as Integer
Dim List() as String

Redim List(0, 1)
Do
     Redim Preserve List(i, 1)

     i = i + 1
Loop until (abbruch) '<---net so wichtig

Den ersten Schleifen Durchlauf macht er noch! Beim zweiten zeigt er 'Laufzeitfehler 9' (Index außerhalb des gültigen Bereichs) beim Redim Preserve an!
Warum? Er muss doch bei einem Redim gar nicht auf das Array zugreifen, er soll es doch nur redimensionieren! Warum klappt das also nicht?

Bitte, brauche dringend Hilfe ich verstehs nicht! Ich hab schon so oft mit Arrays gearbeitet aber den Sch... hat er noch nie gemacht!

Gruß
Dignsag
 
Hi.

Du kannst nur die obere Grenze der letzten Dimension eines mehrdimensionalen Arrays redim'ensionieren.

Dh.:
Visual Basic:
redim preserve xyz (10, i)  ' <- ist OK

redim preserve xyz(i, 10)  ' <- Fehler!
Gruß
 
Hi,

hier mal ein Auszug aus der MSDN:
Mit dem Schlüsselwort Preserve können Sie nur die Größe der letzten Datenfelddimension ändern. Wenn das Datenfeld zum Beispiel nur eine Dimension hat, können Sie die Größe dieser Dimension ändern, weil es die letzte und einzige Dimension ist. Hat das Datenfeld jedoch mindestens zwei Dimensionen, so können Sie lediglich die Größe der letzten Dimension ändern, wenn der Inhalt des Datenfeldes erhalten bleiben soll.

Was du jetzt in deinem Code machst ist folgendes: Beim ersten Durchlauf bekommst du noch keinen Fehler, da dein Array noch nicht verändert wird. Beim zweiten mal versuchst die erste Stelle im Array zu ändern. Das darfst du laut MSDN aber nicht. Es ist nur möglich, auf die letzte Stelle im Array zuzugreifen.
 
OK Fehler behoben, danke euch beiden!

Allerdings finde ich es sehr seltsam warum man nur die letzte Dimension ändern kann. Das macht doch gar keinen Sinn!

Is ja auch egal... klingt logisch is aber so!

Gruß

Dignsag
 
Hallo Vb Programmierer
Seit einem Monat versuche ich eine Benutzeroberfläche zu Programmieren!jetzt habe ich das folgende Problem,wo ich gar net weiter kommen kann.
Also ich habe insgesamt 6 Forms! in der erst Forme habe ich eine Frame mit 5 Buttons und ein Bild!ich möchte gern dass diese Frame komplete mit dem Buttons und Bild in alle restlichen Forms erscheinen!ich brauche es dringend für mein Projekt
Für jeder Hinsweis oder Hilfe bin ich sehr dankbar.
tschüsss
 
Zurück