vSort
Синтаксис
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