Вычисляет номер элемента массива исходя из индексов этого элемента.
Синтаксис:
AELEMENT(ArrayName, nRowSubscript [, nColumnSubscript])
Параметры:
ArrayName
Задает имя массива, номер элемента которого нужно возвратить.
nRowSubscript
Задает строчный индекс. Если массив одномерный, функция AELEMENT() просто возвращает nRowSubscript.
Если задан индекс nRowSubscript, который превышает число строк в массиве, Visual FoxPro выдаст сообщение об ошибке.
nColumnSubscript
Задает столбцевой индекс. Если массив двумерный, нужно задать и nRowSubscript, и nColumnSubscript.
Результат:
Числовой
Комментарии:
Элемент двумерного массива можно указывать двумя способами: либо с помощью двух индексов, задающих позиции элемента в массиве по строкам и по столбцам, либо с помощью одиночного номера. Функция AELEMENT( ) возвращает номер элемента исходя из его строчного и столбцевого индексов.
Такие функции Visual FoxPro, как ADEL( ), ADIR( ), AFIELDS( ), AINS( ), ALEN( ), ASCAN( ), ASORT( ) и ASUBSCRIPT( ), могут манипулировать двумерными массивами; элементы для них необходимо указывать по номерам. Функция AELEMENT( ) выполняет преобразование значений индексов в номер элемента, который могут использовать указанные функции. Для получения строчного и столбцевого индексов по номеру элемента следует воспользоваться функцией ASUBSCRIPT( ).
Следующий пример иллюстрирует, как создать массив из двух строк и трех столбцов. Команда DISPLAY MEMORY показывает содержимое элементов массива в порядке их номеров.
DIMENSION gaMyArray(2,3) DISPLAY MEMORY LIKE gaMyArray gaMyArray Pub A ( 1, 1) L .F. (element number 1) ( 1, 2) L .F. (element number 2) ( 1, 3) L .F. (element number 3) ( 2, 1) L .F. (element number 4) ( 2, 2) L .F. (element number 5) ( 2, 3) L .F. (element number 6)
Элемент можно указать с помощью его индексов или номера. Команды STORE 'INVOICE' TO gaMyArray(2, 1) и STORE 'INVOICE' TO gaMyArray(4) сохраняют символьную строку INVOICE в одном и том же элементе массива.
В одномерных массивах номер элемента идентичен строчному индексу. Для таких массивов использовать функцию AELEMENT( ) нет необходимости.