Mehrdimensionales Array on the Fly erstellen
Übersicht

![]() |
BobBetreff: Mehrdimensionales Array on the Fly erstellen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute,
als blutiger MAX Anfänger hab ich ein Problem mit dem erstellen von Mehrdimensionalen Array's on the fly: 'geht Local int_array:Int[] int_array=New Int[10] 'geht nicht Local int_array2:Int[] int_array2=New Int[10,10] Was mach ich falsch? Danke |
||
Er soll an den Spielen teilnehmen bis er spielend stirbt. MCP - TRON |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es muss nicht "Local int_array2:Int[]", sondern "Local int_array2:Int[,]" heißen. | ||
![]() |
Bob |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi BORNtobeNAMELESS,
danke. Ich frage mich allerdings wo du diese Information her hast. Die OH gibt darüber überhaupt keinen aufschluss. (Wie über vieles andere auch nicht) Gibt es eine bessere Hilfe als die orginal OH. |
||
Er soll an den Spielen teilnehmen bis er spielend stirbt. MCP - TRON |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hatte selber mal das selbe Problem.
Nach 20Min Probieren hatte ich die Lösung. |
||
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
So könnte man das auch machen: Code: [AUSKLAPPEN] Local breite:Int=10,hohe:Int=10 Local feld:Int[][] feld = feld[..breite] For Local I:Int = 0 To breite-1 feld[I] = feld[I][..hoheY] Next mfg |
||
![]() |
Bob |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Rone.
Hab ich auch nicht gewusst. Weis jemand wie ich später die Dimensionen wieder zurück gewinnen kann? Beispiel: x = Rand(1,5) y = Rand(1,5) Local arr:Int[,] arr=New Int[x,y] Print arr.length +" x * y " + x + " " +y Mit Dimensions() klappts auch irgendwie nicht. Ich weis halt zur Laufzeit nicht unbedingt in welcher Größe ein Array erzeugt wird. |
||
Er soll an den Spielen teilnehmen bis er spielend stirbt. MCP - TRON |
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Local breite:Int,hohe:Int Local feld:Int[][] breite = Input("Breite: ").ToInt() hohe = Input("Hoehe: ").ToInt() feld = feld[..breite] For Local I:Int = 0 To breite-1 feld[I] = feld[I][..hohe] Next Print "-----------------------------------" Print "Breite: "+feld.length Print "Hoehe: "+feld[0].length mfg |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sicher gehts mit dimensions:
Dimensions()[0] bzw [1] in deinem Falle. Dimensions liefert einen Int array zurück. der weg meines vorschreibers geht nur mit array of array |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Bob |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Dremora,
warst mal wieder meine retung. Ich habe es zwar merfach mit allen möglichen Kombinationen von Dimensions versucht. Aber da in der OH golgendes steht: "Dimensions:Int[]() Get array dimensions. If the array is empty, an empty array is returned. " Hat es bei mir nie mit Dimensions[1]() oder Dimensions[](1) geklappt. |
||
Er soll an den Spielen teilnehmen bis er spielend stirbt. MCP - TRON |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Scheint als würdest du noch nicht ganz verstehen, was die Method / Function Deklarationen aussagen.
:Int[] heisst, dass ein Int Array zurück geliefert wird. Sprich das was zurück gegeben wird ist das was du nachher hast, wenn du die Funktion / Methode aufrufst. Nicht mehr aber auch nicht weniger ![]() -> .Dimensions() gibt dir einen Array zurück, ist also das gleiche als wenn da wirklich ein Array stehen würde (was eine sehr schöne und praktische Sache ist). Um nun diesen Array der da steht zu nutzen, musst du lediglich [index] nutzen, wie du es bei einem "richtigen" array auch tun würdest. Von daher kommt diese "Lösung". Musst dir halt bei den Funktionen/Methoden jeweils überlegen, was ihre Deklarationen darüber aussagen, was du von ihnen zurück erhälst bzw. wofür sie stehen, wenn du sie nutzt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group