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)
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