Синтаксис

FLOAT vSort(HANDLE HArray, [STRING FileldName])

FLOAT vSort(HANDLE HArray, FLOAT Decr, [STRING FileldName])

FLOAT vSort(HANDLE HArray, [STRING FileldName, FLOAT Decr])


Описание

Сортирует массив по заданному списку полей. Если массив имеет базовый тип (FLOAT, STRING…), то имена указывать не нужно. Сортировка по нескольким полям полезна тогда, когда в массиве есть элементы с одинаковым значением по одному полю и с различным значением по другому.

Список можно сортировать как по возрастанию, так и по убыванию. Для этого необходимо установить значение аргумента Decr в 1. 

Во втором варианте функции при Decr =1 массив будет отсортирован по убыванию по всем указанным полям, а в третьем варианте функции для каждого поля можно указать различное значение аргумента Decr.


Параметры

HArray        Дескриптор массива

FileldName        Имя поля в структуре данных

Decr        Флаг сортировки массива по убыванию


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

1 в случае успешной сортировки массива, 0 при возникновении ошибки


Пример


Hlist:=newNew ()

r:=vInsertvInsert (~Hlist,”STRING”)


i:=0

whilewhile (~i<10)

  r:=vinsert(~Hlist,"FLOAT")

  vsetvSet (~Hlist,~i,"FLOAT",rnd(32000))

  incInc (~i)

endwhile


r:=vSort(~Hlist) //сортировка по возрастанию массива простого типа

r:=vSort(~Hlist,1) //сортировка по убыванию массива простого типа


//Допустим класс Class1 имеет переменные Word и Value

Hlist:=new()

r:=vInsert(~Hlist,”Class1”);  vSet(~Hlist,0, “Word”, “пример1”); vSet(~Hlist,0, “Value”, 10)

r:=vInsert(~Hlist,”Class1”);  vSet(~Hlist,1, “Word”, “пример3”); vSet(~Hlist,1, “Value”, 1)

r:=vInsert(~Hlist,”Class1”);  vSet(~Hlist,2, “Word”, “пример1”); vSet(~Hlist,2, “Value”, 5)


//сортировка массива по полю Word по возрастанию

r:=vSort(~Hlist,”Word”)


//сортировка массива по полю Word по возрастанию и по полю Value по убыванию

r:=vSort(~Hlist,”Word”,0,”Value”,1) 


см. Динамические массивыArray

Created with the Personal Edition of HelpNDoc: Achieve Professional Documentation Results with a Help Authoring Tool