Возвращает верхнюю границу размерности массива
Синтаксис
Использование
result = UBound( array [, dimension ] )
Параметры
array
массив любого типа
dimension
размерность для получения верхней границы
Возвращаемое значение
Возвращает верхнюю границу размерности массива.
Описание
UBound возвращает наибольшее значение, которое может
использоваться в качестве индекса в определенной размерности массива.
Размерности массива нумеруются от одного (
1) до
n,
где
n - общее количество измерений. Если
dimension
не указывается,
UBound возвращает верхнюю границу первого
измерения.
Если
dimension - нуль (0),
UBound возвратит
n,
количество измерений в массиве. Для любых других значений
dimension
вне допустимого диапазона
1..
n, возвращает
-1.
Это может использоваться для получения количества измерений массивов
переменной длины и в сочетании с результатом
Lbound() для
определения существования данной размерности, или определения пустого
массива (нулевой размер). Смотрите страницу
LBound
для получения дополнительной информации.
Пример
Dim array(-10 To 10, 5 To 15, 1 To 2) As Integer
Print UBound(array) 'возвратит 10
Print UBound(array, 2) 'возвратит 15
Print UBound(array, 3) 'возвратит 2
'' определения размера массива
Dim As Short array(0 To 9)
Dim As Integer arraylen, arraysize
arraylen = UBound(array) - LBound(array) + 1
arraysize = arraylen * SizeOf( Short )
Print "Number of elements in array:", arraylen '10
Print "Number of bytes used in array:", arraysize '10 * 2 = 20
'' определения размера многомерного массива
Dim As Long array4D(1 To 2, 1 To 3, 1 To 4, 1 To 5)
Dim As Integer arraylen, arraysize
arraylen = (UBound(array4D, 4) - LBound(array4D, 4) + 1) _
* (UBound(array4D, 3) - LBound(array4D, 3) + 1) _
* (UBound(array4D, 2) - LBound(array4D, 2) + 1) _
* (UBound(array4D, 1) - LBound(array4D, 1) + 1)
arraysize = arraylen * SizeOf( Long )
Print "Number of elements in array:", arraylen '2 * 3 * 4 * 5 = 120
Print "Number of bytes used in array:", arraysize '120 * 4 = 480
'' определении того, является ли массив пустым
Dim array() As Integer
Print "lbound: "; LBound( array ), "ubound: "; UBound( array ) '' 1 and 0
If LBound( array ) > UBound( array ) Then
Print "array is empty"
Else
Print "array is not empty"
End If
Sub printArrayDimensions( array() As Integer )
Print "dimensions: " & UBound( array, 0 )
'' Для каждого измерения...
For d As Integer = LBound( array, 0 ) To UBound( array, 0 )
Print "dimension " & d & ": " & LBound( array, d ) & " to " & UBound( array, d )
Next
End Sub
Dim array() As Integer
printArrayDimensions( array() )
Print "---"
ReDim array(10 To 11, 20 To 22)
printArrayDimensions( array() )
См. также