Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

Функция ASORT( )

См. также Пример

Сортирует элементы массива в возрастающем или убывающем порядке.

Синтаксис

ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder]]])

Параметры

ArrayName

Задает имя сортируемого массива.

nStartElement

Задает элемент, с которого начинается сортировка. Если аргумент nStartElement опущен, массив по умолчанию сортируется, начиная с самого первого элемента. Если массив одномерный, сортировка включает сам элемент nStartElement. Если массив двумерный, начальный элемент nStartElement определяет и строку, с которой начинается сортировка, и столбец, определяющий порядок сортировки строк.

Замечание Элемент двумерного массива можно указывать двумя способами: либо с помощью вух индексов, задающих позиции элемента в массиве по строкам и по столбцам, ли о с помощью одиночного номера. Данная функция, как и ряд других функций, манипу ирующих двумерными массивами, требуют задания одиночных номеров (в данном с учае fox90001.gif числовые выражения nStartElement и nNumberSorted). Для получения номера элемента исходя из его строчного и столбцевого ин ексов используйте функцию AELEMENT( ).

В следующем примере начальный элемент nStartElement определяет, как сортируются строки в двумерном массиве. Создается небольшой массив gaArray, который сортируется дважды. Первая сортировка начинается с первого элемента массива gaArray, при этом строки сортируются по значениям, содержащимся в первом столбце массива. Вторая сортировка начинается с четвертого элемента массива gaArray, и при этом строки сортируются по значениям, содержащимся во втором столбце.

Первая сортировка начинается с первой строки. Вторая сортировка начинается со второй строки. С помощью команды DISPLAY MEMORY можно отобразить содержимое массива; в данных примерах таблицы используются для графического изображения резу ьтатов сортировки.

Далее следуют команды, создающие массив gaArray:

DIMENSION gaArray(3,2)

gaArray(1) = 'G'

gaArray(2) = 'A'

gaArray(3) = 'C'

gaArray(4) = 'Z'

gaArray(5) = 'B'

gaArray(6) = 'N'

Массив gaArray выглядит следующим образом:


Столбец 1
Столбец 2
Строка 1
G
A
Строка 2
C
Z
Строка 3
B
N

Затем массив сортируется функцией ASORT( ), начиная с первого элемента (1,1). Элементы первого столбца располагаются в возрастающем порядке переупорядочением строк массива.

=ASORT(gaArray,1)

Новый порядок строк будет следующим:


Столбец 1
Столбец 2
Строка 1
B
N
Строка 2
C
Z
Строка 3
G
A

Затем массив сортируется, начиная с четвертого элемента (2,2). Элементы вто ого столбца располагаются по порядку перестановкой строк массива.

=ASORT(gaArray,4)

Обратите внимание на разницу в порядке строк:


Столбец 1
Столбец 2
Строка 1
B
N
Строка 2
G
A
Строка 3
C
Z

nNumberSorted

Задает число элементов, сортируемых в одномерном массиве, или число строк, со тируемых в двумерном массиве. Например, если массив одномерный и значение nStartElement равно 2 (то есть сортировка начинается со второго элемента массива), а значе ие nNumberSorted равно 3 (то есть в сортировке должны участвовать три элемента), то будут отсо тированы второй, третий и четвертый элементы массива. Если значение nNumberSorted равно fox90002.gif1 или не задано вообще, сортируются все элементы массива, начиная с элемента nStartElement и кончая последним элементом массива.

Если массив двумерный, nNumberSorted обозначает число строк, которые будут отсортированы, начиная со строки, соде жащей элемент nStartElement. Например, если значение nStartElement равно 2, а значение nNumberSorted равно 3, в сортировке участвуют строка, содержащая второй элемент массива, и ве следующие за ней строки. Если значение nNumberSorted равно fox90002.gif1 или вообще не задано, будут отсортированы все строки, начиная со строки, со ержащей элемент nStartElement, и кончая последней строкой массива.

nSortOrder

Задает вид сортировки элементов массива (в возрастающем или в убывающем поря ке). По умолчанию элементы массива сортируются в возрастающем порядке. Если з ачение nSortOrder равно 0 или опущено, элементы массива сортируются в возрастающем порядке. Ес и значение nSortOrder равно 1 или любому неотрицательному числу, элементы массива сортируются в уб вающем порядке.

Результат

Числовой

Комментарии

Все элементы, участвующие в сортировке, должны принадлежать одному типу данн х. Одномерные массивы сортируются по элементам; двумерные массивы сортируются по строкам. Когда сортируется двумерный массив, порядок строк в массиве изме яется таким образом, что элементы в столбце массива располагаются в возрастающем и и в убывающем порядке.

Если сортировка завершается успешно, возвращается значение 1; в противном с учае возвращается fox90002.gif1.



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.