PureBasic

ArraySize()

Синтаксис

Result = ArraySize(Array() [, Dimension])

Описание


Возвращает размер указанного измерения Массива, который был задан при объявлении Массива с помощью ключевого слова Dim или ReDim.

Параметры

Array() Имя Массива, размер которого требуется узнать.
Dimension (дополн.) Этот параметр используется для многомерных массивов и указывает Номер измерения, для получения величины конкретного измерения. Нумерация начинается с 1.

Возвращаемое значение

Возвращает размер указанного измерения Массива. Если Массив еще не объявлен (или его размещение не удалось), возвратится -1.

Комментарии

Количество элементов равно размеру указанному в Dim + 1. Например: Dim a(2) задаёт размер 2, но при этом создаёт Массив с 3 элементами от a(0) до a (2).

Эта функция не работает со статическими Массивами, объявленными в структурах. Вместо неё используйте команду SizeOf.

Пример

Dim MyArray.l(10)
Debug ArraySize(MyArray()) ; Выведет '10'

Dim MultiArray.l(10, 20, 30)
Debug ArraySize(MultiArray(), 2) ; Выведет '20'

Dim MultiArray2.l(2, 2, 2)
For n = 0 To ArraySize(MultiArray2(), 2)
    MultiArray2(0, n, 0) = n+1
Next n
Debug MultiArray2(0, 0, 0) ; Выведет '1'
Debug MultiArray2(0, 1, 0) ; Выведет '2'
Debug MultiArray2(0, 2, 0) ; Выведет '3'
Debug ArraySize(MultiArray2(), 2) ; Выведет '2'

Пример

Dim Test.q(99999999999999999)

If ArraySize(Test()) <> -1
    Test(12345) = 123  ; все нормально
Else
    Debug "Не удалось инициализировать массив 'Test()'."
EndIf

Пример

Structure MyStructure
  ArrayStatic.l[3]        ; Статический массив, только в структурах
  Array ArrayDynamic.l(4) ; Динамический Массив
EndStructure

Debug SizeOf(MyStructure\ArrayStatic)  ; Выведет 12
Debug SizeOf(MyStructure\ArrayDynamic) ; Выведет 8

Ex.MyStructure
Debug ArraySize(Ex\ArrayDynamic()); Выведет 4

См. также

ListSize(), MapSize()

Поддерживаемые OS

Все

Оглавление Array - CopyArray() ->