Mehrdimensionale Arryas ansprechen und auslesen

dark_mascot

Grünschnabel
Hallo ich möchte Werte in einem
mehrdimensionalen Array speichern, bekomme
die Meldung: Fehler 9 Index außerhalb des gültigen Bereiches

Dim Zeilen As String ' Datenzeilen der gelesenen Datei
Dim Helpstr As String
Dim Helpstr2 As String
Dim Variable As String

Dim WerteArray() As String
Dim ZZ As Integer ' Zählt jede Zeile
Dim ZZ2 As Integer ' Zählt Anzahl der Variablen
Dim ZZ3 As Integer ' Zählt Anzahl der Zahlenwerte einer Zeile
Dim I_Zeilen As Integer ' Anzahl der Zeilen

...

ZZ = ZZ + 1

...

ZZ3 = 0
ReDim Preserve WerteArray(ZZ2, I_Zeilen) 'momentan ZZ2=8, I_Zeilen=12000
Helpstr = Zeilen & Chr$(9)

Do
Helpstr2 = Left(Helpstr, InStr(Helpstr, Chr$(9))) 'Wert + TAB
Helpstr = Right(Helpstr, Len(Helpstr) - Len(Helpstr2)) ' ^ enthält den Rest zur Weiterverarbeitung
Variable = Left(Helpstr2, Len(Helpstr2) - 1) ' Wert

ZZ3 = ZZ3 + 1
WerteArray(ZZ3, ZZ) = Variable

If Len(Helpstr) = 0 Then Exit Do
Loop

...

Wer kann mir sagen,
wo mein Fehler liegt

Danke
Dark_Mascot
 
Dein Array fängt doch mit dem Index 0 an, oder? Also 0 bis 8. In der Schleife versuchst du aber auf den Indexbereich 1 bis (warscheinlich) 9 zuzugreifen.
Versuch es mal so (ich hab die Änderungen rot markiert):
Code:
ReDim Preserve WerteArray(ZZ2, I_Zeilen) 'momentan ZZ2=8, I_Zeilen=12000 
Helpstr = Zeilen & Chr$(9)
 
Do
Helpstr2 = Left(Helpstr, InStr(Helpstr, Chr$(9))) 'Wert + TAB
Helpstr = Right(Helpstr, Len(Helpstr) - Len(Helpstr2)) ' ^ enthält den Rest zur Weiterverarbeitung
Variable = Left(Helpstr2, Len(Helpstr2) - 1) ' Wert
 
WerteArray(ZZ3, ZZ) = Variable 
ZZ3 = ZZ3 + 1 
 
Loop Until Len(Helpstr) = 0
Hast du schon mal den Debugger von VB benutzt, um solche Fehler zu finden? Geh mit dem Debugger mal Schritt für Schritt den Code durch und überprüfe alle Variablen.
 
*schmoll* habe den Fehler gefunden
hatte irgendwann mal ZZ2 als Zähler genommen und bis 0 zurückgezählt,
nun war also im mehrdimensionalen Array der eine Wert=0 und als
ich auf den Wert 1 zugreifen wollte war er ebend nicht da ...

Danke
Dark_Mascot
 
Zurück