SortStructuredList()
Syntaxe
SortStructuredList(ListName(), Mode, OffsetDuChamp, Type [, Debut, Fin])Description
Trie la liste selon les options souhaitées. La liste doit avoir une structure associée. OffsetOf() peut être utilisé pour obtenir l'offset du champ dans la structure associée à la liste. Le paramètre 'Type' défini le type du champ de la structure qui sert pour le tri. Les types disponibles sont:#PB_Sort_Byte : Le champ de la structure utilisé pour le tri est un octet (.b) #PB_Sort_Word : Le champ de la structure utilisé pour le tri est un word (.w) #PB_Sort_Long : Le champ de la structure utilisé pour le tri est un long (.l) #PB_Sort_String : Le champ de la structure utilisé pour le tri est un string (.s or $, les fixed strings ne sont pas supportés) #PB_Sort_Float : Le champ de la structure utilisé pour le tri est un flottant (.f) #PB_Sort_Double : Le champ de la structure utilisé pour le tri est un double (.d) #PB_Sort_Quad : Le champ de la structure utilisé pour le tri est un quad (.q) #PB_Sort_Character: Le champ de la structure utilisé pour le tri est un caractère (.c) #PB_Sort_Ascii : Le champ de la structure utilisé pour le tri est un caractère ascii (.a) #PB_Sort_Unicode : Le champ de la structure utilisé pour le tri est un caractère unicode (.u)Une plage Début, Fin optionnelle peut être indiquée.
'Mode' peut être une combinaison avec l'une des constantes suivantes :
#PB_Sort_Ascending : Trie le tableau en ordre ascendant (les plus petites valeurs en tête)
#PB_Sort_Descending: Trie le tableau en ordre descendant (les plus grandes valeurs en tête)
et la constante suivante :
#PB_Sort_NoCase : Trie un tableau de chaînes de caractères en ne tenant pas compte de la casse (a=A, b=B etc..). Par défaut le tri est sensible à la casse.
Les chaînes fixes ne sont pas supportées dans les commandes de tri.
Exemple
Structure Animal
Nom$
Vitesse.l
EndStructure
NewList Animaux.Animal()
AddElement(Animaux())
Animaux()\Nom$ = "Tigre"
Animaux()\Vitesse = 10
AddElement(Animaux())
Animaux()\Nom$ = "Jaguar"
Animaux()\Vitesse = 40
AddElement(Animaux())
Animaux()\Nom$ = "Zèbre"
Animaux()\Vitesse = 30
; Trie la liste en fonction du champ 'Nom$'qui est une chaîne de caractères (String)
;
SortStructuredList(Animaux(), #PB_Sort_Ascending, OffsetOf(Animal\Nom$), #PB_Sort_String)
ForEach Animaux()
Debug Animaux()\Nom$+" - Vitesse : "+Str(Animaux()\Vitesse)
Next
; Trie la liste en fonction du champ 'Vitesse' qui est un long
;
SortStructuredList(Animaux(), #PB_Sort_Ascending, OffsetOf(Animal\Vitesse), #PB_Sort_Long)
ForEach Animaux()
Debug Animaux()\Nom$+" - Vitesse : "+Str(Animaux()\Vitesse)
Next
OS Supportés
Tous