Größe einzelner Arrays in mehrdimensionalen Array (2D, 3D)

  • Hi Leute,

    ich habe ein 3D Array durch das ich gerne iterieren möchte. Leider klappt mein Gedankengang wie ich ihn aus anderen Sprachen kenne nicht:

    AutoIt
    ; Dim $firstPassed[1][1][2] 1. und 2. Dimension sind später größer
    For $j = 0 To (UBound($firstPassed[$i]) - 1)

    Ubound scheint damit überfordet zu sein und so wie ich es bisher rausgelesen habe auch nur für 1D Arrays zu funktionieren... Gibt es eine andere Möglichkeit einfach nur die Größe des 2. Teils des Arrays (was ja auch wieder nur ein Array ist) zu erhalten?
    Andernfalls muss ich vieles umschreiben X/

    Vielen Dank und Grüße,
    Aquaplant

    • Offizieller Beitrag

    UBound hat einen zweiten Parameter der Default=1 ist. ^^

    AutoIt
    Local $a3D[2][2][3]
    ConsoleWrite('UBound (1): ' & UBound($a3D) & @CRLF)
    ConsoleWrite('UBound (2): ' & UBound($a3D, 2) & @CRLF)
    ConsoleWrite('UBound (3): ' & UBound($a3D, 3) & @CRLF)

    Und mit UBound($array, 0) bekommst du die Dimensionsgröße.
    Somit ließe sich das in einer Schleife prima abarbeiten:

    [autoit]


    Local $a3D[2][2][3]
    For $i = 1 To UBound($a3D, 0)
    ConsoleWrite('UBound ' & $i & ': ' & UBound($a3D, $i) & @CRLF)
    Next

    [/autoit]
  • Hi,
    ja sehr geil, vielen Dank für die schnelle Antwort. Da hab ich die Hilfe und anderen Threads im englischen Forum wohl missverstanden. Hauptsache es klappt, danke :)
    Viele Grüße,
    Aquaplant