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

<- SortStructuredArray() - Sort Index