13.4. ARRAY

About
Functions order

13.4.1. About ARRAY

13.4.2. ARRAY functions order

A2EDIT() Просмотр двухмерного массива в виде таблицы
AADD() Добавляет новый элемент в конец массива.
ACLONE() Дублирует вложенный или многомерный массив.
ACOPY() Копирует элементы одного массива в другой.
ADEL() Удаляет элемент массива.
AEVAL() Выполняет блок кода для каждого элемента массива.
AFILL() Заполняет массив заданным значением.
AINS() Заносит элемент со значением NIL в массив.
ARRAY() Создает неинициализированный массив заданной длины.
ASCAN() Просмотр массива
ASIZE() Увеличивает или уменьшает размер массива.
ASORT() Сортирует массив.
ATAIL() Возвращает элемент массива с наибольшим номером.
DIRECTORY() Создает массив с информацией о каталогах и файлах.
EMPTY() Определяет, является ли результат выполнения выражения пустым.
__FLEDIT() Отбирает из массива структуры DBStruct() элементы, указанные в списке.
FT_AADDITION() Add elements unique of source array to target array
FT_AAVG() Average numeric values in an array
FT_ADESSORT() Sort an array in descending order
FT_AEMAXLEN() Find longest element within an array
FT_AEMINLEN() Find shortest element within an array
FT_AMEDIAN() Find middle value in array, or average of two middle values
FT_ANOMATCHES() Find the number of array elements meeting a condition
FT_AREDIT() 2 dimensional array editing function using TBrowse
FT_ASUM() Sum the elements of an array
FT_RESTARR() Restore a Clipper array from a disc file
FT_SAVEARR() Save Clipper array to a disc file.
LEN() Определяет длину символьной строки или количество элементов в массиве.
MAP() Создает новый пустой объект (ассоциативный массив)
MAPMODIFY Включает/отключает режим контроля измений атрибутов.
TYPE() Определяет тип выражения.
VALTYPE() Определяет тип данных выражения.

13.4.2.1. Function A2EDIT()

  A2EDIT(<nTop>, <nLeft>, <nBottom>, <nRight>, <aData>, <cUserFunc>, <aSay>, <aHeaders>, <aHeadSep>, <aColSep>, <aFootSep>, <aFooters>) --> NIL
 

13.4.2.2. Function AADD()

  AADD(<имя массива>, <выражение>[, <keyValue>]) --> значение

13.4.2.2.3. Description

AADD() - это функция обработки массивов, которая увеличивает текущую длину указанного массива на единицу. Вновь созданному элементу присваивается значение, заданное аргументом <выражение>.

AADD() используется для динамического наращивания массивов. Это полезно для построения динамических списков и очередей. Примером может служить массив Getlist, используемый системой GET для хранения GET- объектов. После команд READ или CLEAR GETS, Getlist становится пустым массивом. Каждый раз, когда выполняется команда @...GET, система GET использует функцию AADD() для добавления нового элемента в конец массива Getlist и затем назначает новый GET-объект новому элементу.

AADD() похожа на ASIZE(), но добавляет только один элемент за вызов; ASIZE() может нарастить или сжать массив до заданного размера. AADD(), однако, имеет то преимущество, что может присваивать значение новому элементу, в то время как ASIZE() этого сделать не может. AADD() так же кажется похожей на функцию AINS(), однако они различны. AINS() перемещает элементы внутри массива, но она не может изменять длину массива.

Примечание. Если аргумент <выражение> - это тоже массив, то новый элемент в указанном массиве будет содержать ссылку на массив, заданный аргументом <выражение>.

13.4.2.4. Function ACOPY()

  ACOPY(<исходный массив>,<принимающий массив>,
 [<начальный элемент>],[<кол-во элементов>],
 [<нач. элемент принимающего массива>])
 --> принимающий массив
 
 

13.4.2.5. Function ADEL()

 ADEL(<принимающий массив>, <номер элемента>) --> принимающий массив

13.4.2.6. Function AEVAL()

  AEVAL(<имя массива>, <блок кода>, [<начальный элемент>],
 [<кол-во элементов>]) --> имя массива
 
 

13.4.2.7. Function AFILL()

 AFILL(<принимающий массив>, <выражение>,[<начальный элемент>],
 [<кол-во элементов>]) --> принимающий массив

13.4.2.8. Function AINS()

 AINS(<принимающий массив>,<номер элемента>) --> принимающий массив

13.4.2.9. Function ARRAY()

 ARRAY(<кол-во эл. 1> [,<кол-во эл. 2>...]) --> массив

13.4.2.11. Function ASIZE()

 ASIZE(<изменяемый массив>,<новый размер>) --> измененный массив

13.4.2.12. Function ASORT()

 ASORT(<имя массива>, [<начальный элемент>], [<кол-во элементов>], [<режим сортировки>]) --> имя массива

13.4.2.12.3. Description

ASORT() - функция обработки массивов, которая сортирует весь массив, содержащий элементы одного типа, или его часть. Сортировка возможна для массивов, состоящих из данных типа CHARACTER, DATE, LOGICAL и NUMERIC.

Если аргумент <режим сортировки> не определен, то по умолчанию сортировка производится по возрастанию значений. Элемент с наименьшим значением перемещается в начало массива (первый элемент), в то время как элемент с наибольшим значением перемещается в конец массива (последний элемент).

Если аргумент <режим сортировки> определен как блок кода, он явно определяет тип сортировки. В процессе сортировки блоку передается очередная пара сортируемых элементов из массива. Если элементы соответствуют типу сотировки, блок возвращает значение "истина" (.T.). Это средство может быть использовано при задании сортировки по убыванию при сортировке словарей (см. примеры ниже).

При сортировке символьные строки располагаются в соответствии с кодами ASCII, для логических данных считается, что значение "ложь"(.F.) имеет наименьшее значение, данные типа дата сортируются в хронологическом порядке, а числовые данные - в соответствии с их значениями.

Примечание: Так как многомерные массивы в xClipper строятся путем вложения подмассивов в другие массивы, функция ASORT() прямо их не сортирует. Для сортировки вложенного массива следует использовать блок кода, который надлежащим образом управляет подмассивом.

13.4.2.14. Function EMPTY()

 EMPTY(<выражение>) --> лог. значение признака

13.4.2.15. Function __FLEDIT()

 __Fledit( <aSrc>, <aList>) -> <aSelected>

13.4.2.23. Function FT_AREDIT()

 FT_AREDIT( <nTop>, <nLeft>, <nBottom>, <nRight>, <Array Name>, ;
 <nElem>, <aHeadings>, <aBlocks> [, <bGetFunc> ] ) -> xElement

13.4.2.27. Function LEN()

 LEN(<символьная строка> | <массив>) --> число

13.4.2.27.4. Example

 Этот пример демонстрирует работу функции LEN() с различными
 параметрами:
 
 ? LEN("Строка символов")        // Результат: 15
 ? LEN("")                       // Результат: 0
 ? LEN(CHR(0))                   // Результат: 1
 //
 LOCAL aTest[10]
 ? LEN(aTest)                    // Результат: 10
 
 Этот пример создает числовой двумерный массив и возвращает число
 элементов в подмассиве, содержащемся в первом элементе исходного
 массива:
 
 LOCAL aArray:= {{1,2}, {1,2}, {1,2}}
 ? LEN(aArray)                   // Результат: 3
 ? LEN(aArray[1])                // Результат: 2
 
 Этот пример показывает, как можно перемещаться по элементам
 массива, используя LEN():
 
 LOCAL aArray := { { 1, 2}, { 1, 2}, { 1, 2} }
 LOCAL nRow, nColumn, nRowCount, nColumnCount
 //
 nRowCount = LEN(aArray)
 FOR nRow = 1 TO nRowCount
 nColumnCount = LEN(aArray[nRow])
 FOR nColumn = 1 TO nColumnCount
 ? nRow, nColumn, aArray[nRow][nColumn]
 NEXT
 NEXT
 
 В этом примере представлена функция, которая возвращает массив
 числовых величин, описывающих размеры вложенного или многомерного
 массива.  Предполагается, что массив имеет одинаковые измерения:
 
 FUNCTION Dimensions( aArray )
 LOCAL aDims := {}
 DO WHILE ( VALTYPE(aArray) == "A" )
 AADD( aDims, LEN(aArray) )
 aArray := aArray[1]
 ENDDO
 RETURN (aDims)

13.4.2.29. Function MAPMODIFY

 MAPMODIFY(<oObj>, <lMode>) 	--> <lOldMode>

13.4.2.30. Function TYPE()

 TYPE(<символьное выражение>) --> тип

13.4.2.31. Function VALTYPE()

 VALTYPE (<выражение>) --> тип