Einige Fragen...
Übersicht

![]() |
juse4proBetreff: Einige Fragen... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich habe einige Fragen zu BlitzMax, da ich Umsteiger bin: 1. Wie kann ich einen Array der so kreiert wurde: Global ar:Short[1, 1, 1]... so verändern, dass er SPÄTER mehr fassen kann laos z.B. 32 x 32 x 3 Felder hat. In Blitz3D ging das, indem man nochmal Dim einsetzte. 2. Warum muss ich bei ReadString die Länge des String's angeben, die Funktion ist doch dafür da , das man das auch nicht wissen muss. 3. Was bedeutet die Fehlermeldung: "Attempt to index array element beyond array length." verständlich ausgedrückt? Wäre nett wenn ihr mir diese Fragen beantowrten könntet, da ich sonst explodiere vor Koffein. ![]() ![]() G... G... Gr.... Gruß, Mortus |
||
Portfolio |LinkedIn |XING |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
1.Code: [AUSKLAPPEN] ar = new Short[x, y, z]
3. Du Versuchst auf ein Feld zuzugreifen, das nicht innerhalb des Arrays liegt. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. https://www.blitzforum.de/foru...hp?t=17682 Da steht im ersten Beitrag unter "Array of Array anstatt mehrdimensionale Arrays" was
2. BlitzMax speichert nicht mehr die Länge des String, weshalb du das selber machen musst. Zwei einfache Funktionen, die das für dich übernehmen sehen so aus: Code: [AUSKLAPPEN] Function WriteStringClassic(stream:TStream, txt:String)
stream.WriteInt(txt.Length) stream.WriteString(txt) End Function Function ReadStringClassic:String(stream:TStream) Return stream.ReadString(stream.ReadInt()) End Function 3. Das heißt, dass du auf ein Array-Element zugreifen willst, welches nicht existiert, also Beispielsweise Array[4], wenn das Array nur 2 Elemente hat. |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Zu Punkt 3 ist natürlich noch anzumerken, dass ein Array [ 32 ] keinen Indexbereich von [ 1 .. 32 ] sondern einen Indexbereich von [ 0 .. 31 ] besitzt.
Im Weiteren ist erwähnenswert, dass der Inhalt eines mehrdimensionalen Arrays bei einem Resize verloren geht. Dieses Problem kann mit einem Array of Array umgangen werden ( also anstatt Array [ 32, 32 ] ein Array [ 32 ] [ 32 ] ). Veränderst Du die Grösse eines Arrays mit Hilfe von New ( also bspw. Array = New Array [ 32 ] ), dann geht der Inhalt auf jeden Fall verloren. Möchte man den Inhalt eines Arrays erhalten ( ohne dieses umständlich zu sichern und wieder zu füllen ), empfiehlt es sich, die Grösse des Arrays wie folgt zu verändern: Array = Array [ .. 64 ], so erhält dieses Array eine neue Grösse von 64 Feldern, oder Array = Array [ 16 .. ], hierbei wird das Array verkleinert, indem die ersten 16 Felder "weggeschnitten" werden. Es kann auch ein bestimmter Bereich ausgeschnitten werden: Array = Array [ 16 .. 24 ], usw. Bei einem Array of Array ist es ggf. notwendig, jedes Array im Array einzeln zu bearbeiten. Es ist also einiges an Schleifen-Aufwand hierzu erforderlich. ^^ |
||
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, danke...
aber nochmal zu 3.: mir ist egal ob das feld verloren geht, ich möchte einfach nur die größe ändern (für ne neue map) wie geht das? oder hab ich da was nicht geschnallt? ![]() |
||
Portfolio |LinkedIn |XING |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das war aber Problem 1. Und das hat dir, mit deiner Vorgabe, Xeres schon korrekt beantwortet. | ||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
juse4pro |
![]() Antworten mit Zitat ![]() |
---|---|---|
ups, simmt ja...
böses Koffein ![]() |
||
Portfolio |LinkedIn |XING |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group