SortStructuredArray()
Синтаксис
SortStructuredArray(ArrayName() , Options , OffsetOf(StructureField) , TypeOf(StructureField) [, Start , End])
Описание
Сортирует указанный Массив структурного типа в соответствии с заданными параметрами.
Параметры
ArrayName() Имя Массива, который требуется отсортировать. Options Этот параметр может быть комбинацией следующих значение (с помощью оператора '|'): #PB_Sort_Ascending : Сортировка Массива в порядке возрастания (в начале меньшие значения) #PB_Sort_Descending: Сортировка Массива в порядке убывания (в начале большие значения) #PB_Sort_NoCase : Сортировка строкового Массива без учёта регистра (a=A, b=B и т.д.OffsetOf (Structure\Field) Смещение поля в структуре. Для получения смещения поля в структуре, используемой в качестве типа для Массива, можно использовать команду OffsetOf(). TypeOf (Structure\Field) Тип поля структуры. Он должен соответствовать типу поля реальной структуры. Для автоматического получения типа поля можно использовать команду TypeOf(). Доступные типы: #PB_Byte : Поле структуры имеет тип byte (.b) #PB_Word : Поле структуры имеет тип word (.w) #PB_Long : Поле структуры имеет тип long (.l) #PB_String : Поле структуры имеет тип string (.s или $, Fixed String не поддерживаются) #PB_Float : Поле структуры имеет тип float (.f) #PB_Double : Поле структуры имеет тип double (.d) #PB_Quad : Поле структуры имеет тип quad (.q) #PB_Character: Поле структуры имеет тип character (.c) #PB_Integer : Поле структуры имеет тип integer (.i) #PB_Ascii : Поле структуры имеет тип ascii character (.a) #PB_Unicode : Поле структуры имеет тип unicode character (.u)Start, End (дополн.) Индекс первого и последнего элементов Массива, определяющие область Массива для сортировки. Если эти параметры не указаны, то будет отсортирован весь Массив.
Комментарии
Тип Fixed String подпрограммой сортировки не поддерживается. Если массив заполнен не полностью, то нулевые элементы будут помещены в начало при сортировке в порядке возрастания, и в конец при сортировке в порядке убывания. Числа NaN не принимаются при сортировке, поскольку это приводит к случайным результатам.
Пример
Structure Animal Name$ Speed.l EndStructure Dim Animals.Animal(2) Animals(0)\Name$ = "Tiger" Animals(0)\Speed = 10 Animals(1)\Name$ = "Jaguar" Animals(1)\Speed = 40 Animals(2)\Name$ = "Zebra" Animals(2)\Speed = 30 SortStructuredArray(Animals(), 0, OffsetOf(Animal\Name$), TypeOf(Animal\Name$)) For k=0 To 2 Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed) Next SortStructuredArray(Animals(), 0, OffsetOf(Animal\Speed), TypeOf(Animal\Speed)) For k=0 To 2 Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed) Next
См. также
SortArray(), RandomizeArray()
Поддерживаемые OS
Все