GLBasic forum

Other languages => GLBasic - de => Topic started by: Hamburgo on 2009-Mar-08

Title: DIM für Globale Arrays / Fehler-Meldung bei Zuweisung
Post by: Hamburgo on 2009-Mar-08
GLOBAL MyArray[]
DIM      MyArray[4][4]

Ist diese Dekleration so korrekt ?

Bei der Abfrage auf ein solches Array bekomme ich die Fehler-
Meldung: Ausserhalb des DIM Bereichs.

MyArray[1] = i

Nehme ich die GLOBAL-Dekleration heraus, läuft es problemlos.

Was mache ich falsch?
Title: Re: DIM für Globale Arrays / Fehler-Meldung bei Zuweisung
Post by: D2O on 2009-Mar-08
Du möchtest ein mehr dimensionales Array als ein einfache ansprechen, das geht nicht!


Code (glbasic) Select
MyArray [1] = i //<<<<<<<<<< Falsch

MyArray [0][1] = 5
oder
MyArray [0][0] = 5
oder
MyArray [1][0] = 5
oder
MyArray [3][3] = 5


.....usw. 
Title: Re: DIM für Globale Arrays / Fehler-Meldung bei Zuweisung
Post by: Hamburgo on 2009-Mar-08
Oh, sorry. Nein, das war ein Tipp-Fehler von mir.

Natürlich muss es heissen:

Code (glbasic) Select
GLOBAL MyArray[]
DIM      MyArray[4][4]

z=3
for x = 1 to z
     for y = 1 to z
          MyArray[x][y] = y + (x*10)
     next
next

Aber trotzdem bekomme ich diese Fehlermeldung:
"Ausserhalb des DIM Bereichs."

Wie gesagt, nehme ich das GLOBAL raus, ist alles ok.
Title: Re: DIM für Globale Arrays / Fehler-Meldung bei Zuweisung
Post by: Schranz0r on 2009-Mar-08
Schick mal bitte dein Code im "Codetag" (Insert Code, das Rautezeichen), damit wir dir auch Helfen können.

Das geht bei mir ohne Probleme:

Code (glbasic) Select
GLOBAL Array[]
DIM Array[5][5]

FOR x = 0 TO 4
FOR y = 0 TO 4

Array[x][y] = RND(9)

NEXT
NEXT


WHILE TRUE

FOR x = 0 TO 4
FOR y = 0 TO 4

PRINT Array[x][y], x*20, y*20

NEXT
NEXT

SHOWSCREEN
WEND
END
Title: Re: DIM für Globale Arrays / Fehler-Meldung bei Zuweisung
Post by: Hamburgo on 2009-Mar-10
Danke für die Hilfe. Habe den Fehler gefunden.

Der Fehler begründete sich in einer falschen
Deklaration der Variblen. Sie versehentlich
2 x Local definiert, weshalb aber keine Fehler-
meldung oder ein Warning ausgegeben wurde.