SortStructuredArray()
Syntax
SortStructuredArray(ArrayName(), Options, OffsetOf(Structure\Field), Type [, Start, End])Description
Sort the specified array, according to the given 'Options'. The array must have an associated structure. OffsetOf() may be used to retrieve the field offset in the structure associated to the array. The 'Type' parameter determine the type of the field in the structure. It must match the real structure field type. Available types are :#PB_Sort_Byte : The structure field to sort is a byte (.b) #PB_Sort_Word : The structure field to sort is a word (.w) #PB_Sort_Long : The structure field to sort is a long (.l) #PB_Sort_String : The structure field to sort is a string (.s or $, fixed strings are not supported) #PB_Sort_Float : The structure field to sort is a float (.f) #PB_Sort_Double : The structure field to sort is a double (.d) #PB_Sort_Quad : The structure field to sort is a quad (.q) #PB_Sort_Character: The structure field to sort is a character (.c) #PB_Sort_Integer : The structure field to sort is an integer (.i) #PB_Sort_Ascii : The structure field to sort is an ascii character (.a) #PB_Sort_Unicode : The structure field to sort is a unicode character (.u)An optional 'Start' and 'End' range index may be specified.
'Options' can take the following values:
#PB_Sort_Ascending : Sort the array in ascending order (low values first)
#PB_Sort_Descending: Sort the array in descending order (high values first)
#PB_Sort_NoCase : Sort the string array without case sensitive (a=A, b=B etc..)
Notes: If an array is not fully filled then null elements will be sorted first in ascending order and last in descending order.
Fixed strings are not supported by the sort routine.Example:
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$ = "Zebre" Animals(2)\Speed = 30 SortStructuredArray(Animals(), 0, OffsetOf(Animal\Name$), #PB_Sort_String) For k=0 To 2 Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed) Next SortStructuredArray(Animals(), 0, OffsetOf(Animal\Speed), #PB_Sort_Long) For k=0 To 2 Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed) Next
Supported OS
All