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() can 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 $) #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)An optional 'Start' and 'End' range index can be specified.
'Options' can take the following values:
0: Sort the array in ascending order (low values first)
1: Sort the array in descending order (high values first)
2: Sort a string array without case sensitive (a=A, b=B etc..) in ascending order
3: Sort a string array without case sensitive (a=A, b=B etc..) in descending order
Note: If an array is not fully filled then null elements will be sorted first in ascending order and last in descending order.
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 ; Sort the array on the 'name$' field, which is a string ; SortStructuredArray(Animals(), 0, OffsetOf(Animal\Name$), #PB_Sort_String) For k=0 To 2 Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed) Next ; Sort the array on the 'speed' field, which is a long ; 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
Windows, Linux, MacOS X