Класс предназначен для управления сортированными данными.
tSortedArrayNew() --> SortedArray object tSortedArray() --> SortedArray object
ADD | Добавить новый элемент. |
DEL | Удалить элемент из массива. |
DELITEM | Удалить элемент по индексу. |
GETDATA | Вернуть по индексу значение. |
GETFIRST | Вернуть значение первого элемента сортированного массива |
GETITEM | Вернуть элемент по индексу. |
GETKEY | Получить ключ элемента по индексу. |
GETLAST | Вернуть значение последнего элемента сортированного массива |
HARDSEEK | Жесткий поиск. |
LEN | Вернуть длину отсортированного массива. |
SEEK | Поиск элемента в массиве |
SOFTSEEK | Мягкий поиск элемента. |
TSORTEDARRAYNEW | Конструктор класса SORTEDARRAY. |
sArr := tSortedArrayNew() sArr:Add("January" , {1 , "January" }) sArr:Add("February" , {2 , "February" }) sArr:Add("March" , {3 , "March" }) sArr:Add("April" , {4 , "April" }) sArr:Add("May" , {5 , "May" }) sArr:Add("June" , {6 , "June" }) sArr:Add("July" , {7 , "July" }) sArr:Add("August" , {8 , "August" }) sArr:Add("September", {9 , "September"}) sArr:Add("October" , {10, "October" }) sArr:Add("November" , {11, "November" }) sArr:Add("December" , {12, "December" }) ? sArr:Len() // 12 ? sArr:GetFirst() // { 4, April} ? sArr:GetLast() // { 9, September} ? sArr:Seek("May") // 9 ? sArr:Seek("Monday") // 13 ? sArr:SoftSeek("Monday") // 10 ? sArr:HardSeek("Monday") // 13 ? sArr:GetItem(3) // {December, { 12, December}} ? sArr:GetData(3) // { 12, December} ? sArr:DelItem(3) // .T. ? sArr:Len() // 11 ? sArr:GetItem(3) // {February, { 2, February}} ? sArr:GetData(3) // { 2, February}
No dependies of platform.
Добавить новый элемент.
Add(<nKey>, <Value>) --> .T./.F.
Если добавление прошло успешно возвращает TRUE, иначе FALSE.
Add() добавляет в массив <::Item> новый элемент с ключом <nKey> и значением <Value>. Элементы с наименьшим значением ключа <nKey> будут вставлены в начало массива <::Item>. Если <nKey> или <Value> не определены, атрибут <Error> будет содержать описание ошибки и Add() вернет FALSE.
Вы можете добавить в массив <::Item> несколько элементов с одинаковым ключом, при этом расположение элементов с одинаковым ключом трудно предсказуемо.
Удалить элемент из массива.
Del(<nKey>, <Value>) --> .T. || .F. Delete(<nKey>, <Value>) --> .T. || .F. DelKey(<nKey>, <Value>) --> .T. || .F.
В случае успеха возвращает TRUE, иначе FALSE.
Del(), Delete(), DelKey() удаляют из массива <::Item> элемент с ключом <nKey> и значением <Value>ю
Если параметры <nKey> или <Value> не определены или же в <::Item> отсутствует элемент с ключом <nKey> и значением <Value>, Add() возвращает FALSE, а атрибут <::Error> содержит описание ошибки.
Удалить элемент по индексу.
DelItem(<nPos>) --> .T. || .F.
В случае успеха возвращает TRUE, иначе FALSE.
DelItem() удаляет из массива <::Item> элемент с индексом <nPos> и возвращает TRUE. Все элементы ниже удаленного сдвигаются вверх на одну позицию.
Вернуть по индексу значение.
GetData(<nPos>) --> data
Возвращает по индексу значение.
GetData() возвращает значение элемента с индексом <nPos> или, если элемента с индексом <nPos> не существует возвращает NIL.
В случае возникновения ошибки атрибут <::Error> содержит описание ошибки.
Вернуть значение первого элемента сортированного массива
GetFirst() --> data value
No arguments
Возвращает значение первого элемента.
GetFirst() Возвращает значение первого элемента массива <::Item>.
Если <::Item> пуст, GetFirst() возаращает NIL.
Вернуть элемент по индексу.
GetItem(<nPos>) --> aItem
Возвращает массив, содержащий ключ и значение элемента с индексом <nPos>
GetItem() возвращает массив, содержащий ключ сортировки и значение элемента массива <::Item> по индексу <nPos>
Получить ключ элемента по индексу.
GetKey(<nPos>) --> nKeyValue
Возвращает ключевое выражение по индексу.
GetKey() возвращает ключ сортировки элемента с индексом <nPos> или, если элемента с индексом <nPos> не существует возвращает NIL.
В случае возникновения ошибки атрибут <::Error> содержит описание ошибки.
Вернуть значение последнего элемента сортированного массива
GetLast() --> data value
No arguments
Возвращает значение последнего элемента.
GetLast() Возвращает значение последнего элемента массива <::Item>.
Если <::Item> пуст, GetFirst() возаращает NIL.
Жесткий поиск.
HardSeek(<nKey>) --> nPos
Возвращает индекс элемента, ключ сортировки которого равен <nKey>, иначе возвращает <::Len()+1>
HardSeek() вызывает метод Seek() с параметрами: Seek(<nKey>, .F.)
Вернуть длину отсортированного массива.
Len() --> nCount
No arguments
Возвращает длину сортированного массива
Len() возвращает длину сортированного массива, равную количеству элементов в <::Item>.
Если массив <::Item> пуст, Add() возвращает 0.
Поиск элемента в массиве
Seek(<nKey>[, <lSoft>]) --> nPos
Возвращает индекс элемента, ключ сортировки которого равен <nKey>, иначе возвращает <::Len()+1>
Seek() перемещает указатель на первый элемент, ключ которого равен <nKey>. Если такой элемент найден, он становится текущим и Seek() возвращает индекс(порядковый номер) этого элемента в массиве <::Item>, атрибут <::Found> устанавливается в TRUE, иначе Seek() возвращает Len() +1 позицию и атрибут <::Found> устанавливается в FALSE.
Позиционирование в сортированном массиве следующее: для нормальной (жесткой) сортировки (<::lSoft> == FALSE), указатель в массиве позиционируется на Len() + 1; для мягкого поиска (<::lSoft> == TRUE), позиционируется на первый элемент, чей ключ больше, чем <nKey>. Если такого элемента нет, позиционируется на Len()+1 и возвращает Len() + 1, а атрибут <::Found> устанавливается в FALSE.
Мягкий поиск элемента.
SoftSeek(<nKey>) --> nPos
Возвращает индекс элемента, ключ сортировки которого равен <nKey>, иначе возвращает индекс элемента, ключ сортировки которого больше <nKey>.
SoftSeek() вызывает метод Seek() с параметрами: Seek(<nKey>, .T.)
Конструктор класса SORTEDARRAY.
tSortedArrayNew() --> SortedArray object tSortedArray() --> SortedArray object
No arguments
Возвращает новый объект класса SORTEDARRAY
tSortedArrayNew() создает и возвращает новый объект класса SORTEDARRAY. Этот класс может быть использован для хранения, быстрого доступа, управления сортированными данными.
Пред. | Начало | След. |
Class QUEUE | Уровень выше | Class STACK |