SortStructuredList()

Syntax

SortStructuredList(ListName(), Options, OffsetOf(Structure\Field), TypeOf(Structure\Field) [, Start, End])
Description
Sorts the specified structured list, according to the given options. The list must have an associated structure.

Parameters

ListName() The list to sort.
Options It can be a combination of the following values:
  #PB_Sort_Ascending : Sort the list in ascending order (lower values first)
  #PB_Sort_Descending: Sort the list in descending order (higher values first)
  #PB_Sort_NoCase    : Sort the string list without case sensitivity (a=A, b=B etc..)
OffsetOf(Structure\Field) Offset of the field in the structure. OffsetOf() may be used to retrieve the field offset in the structure associated to the list.
TypeOf(Structure\Field) The field type of the field in the structure. It has to match the real structure field type. TypeOf() may be used to automatically retrieve the field type. Available types are:
  #PB_Byte     : The structure field to sort is a byte (.b)
  #PB_Word     : The structure field to sort is a word (.w)
  #PB_Long     : The structure field to sort is a long (.l)
  #PB_String   : The structure field to sort is a string (.s or $, fixed strings are not supported)
  #PB_Float    : The structure field to sort is a float (.f)
  #PB_Double   : The structure field to sort is a double (.d)
  #PB_Quad     : The structure field to sort is a quad (.q)
  #PB_Character: The structure field to sort is a character (.c)
  #PB_Integer  : The structure field to sort is an integer (.i)
  #PB_Ascii    : The structure field to sort is an ascii character (.a)
  #PB_Unicode  : The structure field to sort is a unicode character (.u)
Start, End (optional) The index of the first and last element in the list that should be sorted. If these parameters are not specified, then the whole list is sorted.
The first list element is at position 0, the next at 1 and so on.

Remarks

Fixed strings are not supported by the sort routine.

Example


  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

See Also

SortList(), RandomizeList()

Supported OS

All

<- SortStructuredArray() - Sort Index