Funktionreferenz


UBound

Beschreibung anzeigen in

Gibt die Größe der Dimension eines Arrays oder die Schlüssel einer Map zurück.

UBound ( Variable [, Dimension = 1] )

Parameter

Variable Ein Array- oder Map-Variable.
Dimension [optional] Für ein Array: Welche Größe der Dimension zurückgegeben werden soll:
    $UBOUND_DIMENSIONS (0) = Anzahl von Subscripts in dem Array
    $UBOUND_ROWS (1) = Anzahl von Zeilen in dem Array (Standard)
    $UBOUND_COLUMNS (2) = Anzahl von Spalten in dem Array
Für Arrays mit mehr als 2 Dimensionen ist der dazugehörige Integer zu verwenden
Für eine Map: Dieser Parameter wird ignoriert und die Anzahl der Schlüssel wird zurückgegeben

Die Konstanten sind in AutoItConstants.au3 definiert.

Rückgabewert

Erfolg: Die Größe der Array-Dimension or die Anzahl der Schlüssel innerhalb einer Map.
Fehler: 0 und setzt das @error Flag auf ungleich null.
@error: 1 = Array: Die Variable ist kein Array oder eine Map.
2 = Die Dimension ist ungültig.

Bemerkungen

Es ist zu beachten, dass für Arrays der zurückgegebene Wert um 1 größer, als der Index des letzten Elements in der Dimension wo die Zählung startete [0], ist.

Verwandte Funktionen

Global/Local, ReDim, IsArray

Beispiel

Beispiel 1

#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3> ; Required for _ArrayDisplay.

Example()

Func Example()
    Local $aArray[10][20]
    Local $iRows = UBound($aArray, $UBOUND_ROWS) ; Gesamte Anzahl von Zeilen. In diesem Beispiel sind es 10.
    Local $iCols = UBound($aArray, $UBOUND_COLUMNS) ; Gesamte Anzahl von Spalten. In diesem Beispiel sind es 20.
    Local $iDimension = UBound($aArray, $UBOUND_DIMENSIONS) ; Die Dimension des Arrays, z. B. 1/2/3 dimensional.

    MsgBox($MB_SYSTEMMODAL, "", "Das Array ist ein " & $iDimension & " dimensionales Array mit " & _
            $iRows & " Zeilen & " & $iCols & " Spalten.")

    ; Füllt das Array mit Daten.
    For $i = 0 To $iRows - 1
        For $j = 0 To $iCols - 1
            $aArray[$i][$j] = "Zeile: " & $i & " - Spalte: " & $j
        Next
    Next
    _ArrayDisplay($aArray)
EndFunc   ;==>Example

Beispiel 2

#include <Array.au3>

_Example()

Func _Example()

    ConsoleWrite("> $aTest_1_Leeres_Array" & @CRLF)
    Local $aTest_1_Empty_Array[]
    ConsoleWrite(UBound($aTest_1_Empty_Array, $UBOUND_DIMENSIONS) & @CRLF)
    ConsoleWrite(UBound($aTest_1_Empty_Array, $UBOUND_ROWS) & @CRLF)
    ConsoleWrite(UBound($aTest_1_Empty_Array, $UBOUND_COLUMNS) & @CRLF)

    ConsoleWrite("> $aTest_2_Leeres_1D" & @CRLF)
    Local $aTest_2_Empty_1D[0]
    ConsoleWrite(UBound($aTest_2_Empty_1D, $UBOUND_DIMENSIONS) & @CRLF)
    ConsoleWrite(UBound($aTest_2_Empty_1D, $UBOUND_ROWS) & @CRLF)
    ConsoleWrite(UBound($aTest_2_Empty_1D, $UBOUND_COLUMNS) & @CRLF)

    ConsoleWrite("> $aTest_3_Leeres_2D" & @CRLF)
    Local $aTest_3_Empty_2D[0][5]
    ConsoleWrite(UBound($aTest_3_Empty_2D, $UBOUND_DIMENSIONS) & @CRLF)
    ConsoleWrite(UBound($aTest_3_Empty_2D, $UBOUND_ROWS) & @CRLF)
    ConsoleWrite(UBound($aTest_3_Empty_2D, $UBOUND_COLUMNS) & @CRLF)

    ConsoleWrite("> $aTest_4_1D" & @CRLF)
    Local $aTest_4_1D[] = [0, 1, 2]
    ConsoleWrite(UBound($aTest_4_1D, $UBOUND_DIMENSIONS) & @CRLF)
    ConsoleWrite(UBound($aTest_4_1D, $UBOUND_ROWS) & @CRLF)
    ConsoleWrite(UBound($aTest_4_1D, $UBOUND_COLUMNS) & @CRLF)

    ConsoleWrite("> $aTest_5_2D" & @CRLF)
    Local $aTest_5_2D[][] = _ ; [[0, 1, 2], [3, 4, 5]]
            [ _
            [0, 1, 2], _
            [3, 4, 5] _
            ]
    ConsoleWrite(UBound($aTest_5_2D, $UBOUND_DIMENSIONS) & @CRLF)
    ConsoleWrite(UBound($aTest_5_2D, $UBOUND_ROWS) & @CRLF)
    ConsoleWrite(UBound($aTest_5_2D, $UBOUND_COLUMNS) & @CRLF)

    ConsoleWrite("> $aTest_6_2D" & @CRLF)
    Local $aTest_6_2D[][] = _ ; [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 1, 2]]
            [ _
            [0, 1, 2], _
            [3, 4, 5], _
            [6, 7, 8], _
            [0, 1, 2] _
            ]
    ConsoleWrite(UBound($aTest_6_2D, $UBOUND_DIMENSIONS) & @CRLF)
    ConsoleWrite(UBound($aTest_6_2D, $UBOUND_ROWS) & @CRLF)
    ConsoleWrite(UBound($aTest_6_2D, $UBOUND_COLUMNS) & @CRLF)

EndFunc   ;==>_Example