PureBasic

SortStructuredList()

Синтаксис

SortStructuredList(ListName() , Options , OffsetOf(StructureField) , TypeOf(StructureField) [, Start , End])

Описание


Сортирует указанный Связный список структурного типа в соответствии с заданными параметрами.

Параметры

ListName() Имя Списка, который требуется отсортировать.
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 подпрограммой сортировки не поддерживается.

Пример

Structure Animal
    Name$
    Speed.l
EndStructure

NewList Animals.Animal()

AddElement(Animals())
Animals()\Name$ = "Tiger"
Animals()\Speed = 10

AddElement(Animals())
Animals()\Name$ = "Jaguar"
Animals()\Speed = 40

AddElement(Animals())
Animals()\Name$ = "Zebra"
Animals()\Speed = 30

SortStructuredList(Animals(), 0, OffsetOf(Animal\Name$), TypeOf(Animal\Name$))

ForEach Animals()
    Debug Animals()\Name$+" - Speed: "+Str(Animals()\Speed)
Next

SortStructuredList(Animals(), 0, OffsetOf(Animal\Speed), TypeOf(Animal\Speed))

ForEach Animals()
    Debug Animals()\Name$+" - Speed: "+Str(Animals()\Speed)
Next

См. также

SortList(), RandomizeList()

Поддерживаемые OS

Все

<- SortStructuredArray() - Оглавление Sort