Seite 1 von 1
array verständnis frage
Verfasst: 12.01.2006 20:19
von diGGa
hi
warum wirft mir dashier:
Code: Alles auswählen
Dim blub(5)
blub(1) = 5
Dim blub(10)
blub(1) = 10
For i=0 To 5
Debug blub(i)
Next
im debugger 5 0en aus? ich dachte wenn man dim erneut aufruft wird das array erneut dimensioniert und der inhalt gelöscht. aber anscheinend nimmt es auch keine daten mehr auf?
Verfasst: 12.01.2006 20:38
von Macros
Code: Alles auswählen
Dim blub(5)
blub(1) = 5
Dim blub(10)
blub(1) = 20
For i=0 To 5
Debug blub(i)
Next
Debug "--------"
blub(1) = 20
For i=0 To 5
Debug blub(i)
Next

Verfasst: 12.01.2006 20:42
von Fabio
Hmmmm, anscheinend muss man das Array erst einmal auslesen bevor
man es in der grösse verändert
Code: Alles auswählen
Dim blub(5)
blub(1) = 5
For i=0 To 4
Debug blub(i)
Next
Dim blub(10)
blub(1) = 10
For i=0 To 5
Debug blub(i)
Next
Verfasst: 12.01.2006 20:43
von roherter
Kannste uns auch sagen warum es dann geht??
Verfasst: 12.01.2006 20:43
von remi_meier
Das ist ein von Fred für V4 schon gefixter Bug

Verfasst: 12.01.2006 20:44
von roherter
aha
Verfasst: 12.01.2006 20:47
von Macros
Ich hab ein bisschen rumprobiert, und es sieht so aus als ob
der erste Zugriff auf das Array fehlschlägt (nach
Dim() ),
alle folgenden normal arbeiten.

Verfasst: 12.01.2006 20:50
von remi_meier
Ich könnte dich jetzt mit Details vollreden wann, wie und wo der Bug auf-
tritt, aber ich lass es mal. Allgemein kann gesagt werden, dass der Bug
normalerweise nicht auftritt, wenn man nach dem Zuweisen eines Wertes
zu einem Array nicht gleich wieder das Array neu dimensioniert und wieder
direkt danach füllt. (Mit direkt meine ich, ohne anderen Code dazwischen)
Ein einfaches
Code: Alles auswählen
Dim blub(5)
blub(1) = 5
If #True:EndIf
Dim blub(10)
blub(1) = 10
For i=0 To 5
Debug blub(i)
Next
sollte vorerst genügen.
Verfasst: 12.01.2006 20:56
von diGGa
ach sehr gut.. hatte das ganze nur schnell eingetippt um zu wissen ob ich so arbeiten kann.. aber geht ja anscheinend weil code wird schon dazwischen sein
