2Dimensionale Arrays
Übersicht

![]() |
The_NiciBetreff: 2Dimensionale Arrays |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ui, da hat sich einer an BlitzMax gesetzt!
Nun, ich wollt ein 2Dimensionales Array mit Daten aus einer Datei füttern, jedoch sagt mir BlitzMax ich würde es mit zuvielen Daten stopfen. Zitat: Unhandled Exception:Attempt to indes array element beyond array length Der Code: Code: [AUSKLAPPEN] SuperStrict 'Graphics(800,600,32,60) Global map:Int[32,24] Global mapfile:TStream=ReadFile("testmap.dat") Local y:Int Local x:Int For y=0 To 24 For x=0 To 32 map[x,y]=ReadInt(mapfile) Next Next CloseFile mapfile For y=0 To 24 For x=0 To 32 'DrawText(map[x,y],x+3,y+3) Print map[x,y] Next Next WaitKey() End Wohl ein einfaches Anfängermisverständnis, wäre über Hilfe also ziemlich froh. ![]() |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Arrays in BlitzMax haben 1 Element weniger als in Blitz3D, weil dort anders gezählt wird. Dein Array hat genau die Anzahl an Elementen, die du angibst. Bei 32 geht das Array von 0 bis 31, bei 24 entsprechend von 0 bis 23. | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst beim For Until verwenden ( Oder die "To-Zahl" um 1 verringern) , da eine indexierung eines Arrays mit 0 beginnt.
Also wenn du "Local i:Int[8]" machst hast du eine "reichweite" von 0 bis _einschließlich_ 7. Gruß, FOODy EDIT: Mist 3ns zu langsam :( |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke an euch beide, klappt jetzt. ![]() |
||
![]() |
StarGazer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich löse das immer so daß ich alle Arrays beim erstellen um einen mehr erstelle. Dann gibs später auch keinen Ärger mit den Forschleifen.
Immer For x to x-1 zu tippen kann auch nerven. Code: [AUSKLAPPEN] breite = 10
höhe = 5 Global Map[breite+1,höhe+1] 'dann gibs hier so auch nie Ärger :) For x = 0 to breite For y = 0 to höhe Map[x,y] = Rand(0,255) Next Next |
||
![]() |
Suco-XBetreff: .... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Ich löse das immer so daß ich alle Arrays beim erstellen um einen mehr erstelle. Dann gibs später auch keinen Ärger mit den Forschleifen. Immer For x to x-1 zu tippen kann auch nerven. Schon von Until gehört, das wurde extra dafür eingeführt. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group