array.GetDimensionLength(dimension n) ?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Trust

Betreff: array.GetDimensionLength(dimension n) ?

BeitragDo, Jan 25, 2018 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Gemeinde,

ich frage mich grade wie es möglich ist, in BMax die Größe einer Dimension eines arrays mit 2 Dimensionen zu bekommen.

Also zB.

BlitzBasic: [AUSKLAPPEN]

Local array:Int[,] = New Int[5,5]
Local dimLength:Int = Sqr(array.length) ' dimLength = 5


Das funktioniert logischerweise nur bei einem array mit gleichgroßen Dimensionen.

In c# zB. gibts die einfache Methode:
Code: [AUSKLAPPEN]

myArray.GetLength(0) // 0 ist die Dimension von welcher man die Länge haben möchte


Gibts da was in BMax?


Danke!


G,
Trust
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.

Holzchopf

Meisterpacker

BeitragDo, Jan 25, 2018 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Arrays haben eine Methode namens Dimensions:Int[](), welche die Grössen der Dimensionen als Array zurückgibt.

Und jetzt frage ich mich echt grad, wieso Mark diesen Namen gewählt hat Confused
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Trust

BeitragDo, Jan 25, 2018 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach nee oder, das habe ich in der BMax Doc gesehen, dachte aber aufgrund des Namens und der Beschreibung, dass es die Anzahl der Dimensionen eines Arrays zurückgibt nicht aber die Länge der Dimensionen Rolling Eyes

Zitat:
Method Description
Sort( ascending=True ) Sort the array.
Dimensions:Int[]() Get array dimensions.


Hatte schon einen Workaround gefunden:
BlitzMax: [AUSKLAPPEN]
Local x:Int[] = [1, 2, 3]
Local y:Int[] = [4, 5, 6]

Local map:Int[][] = [ x, y ]


Print "First dimension length = " + map.length
Print "Second's dimension length = " + map[0].length
Print ""

Print map[0][1]
Print map[1][1]


Nun kann man map.length als mapHeight nutzen und map[0].length als mapWidth "missbrauchen".
Muss man allerdings bei der Definition von x und y aufpassen, dass man beiden gleich viele Elemente gibt, sonst hauts nimmer hin mit map[0].length, da dies eben nur die Anzahl der Elemente von, in diesem Fall x zurück gibt.

Aber ja, in diesem Fall hat es sich erledigt.

Danke Smile
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group