SortStructuredList()

Syntaxe

SortStructuredList(Liste(), Options, OffsetOf(Structure\Champs), TypeOf(Structure\Champs) [, Debut, Fin])
Description
Trie une liste de structures.

Arguments

Liste() La liste de structures à trier selon les options souhaitées.
La liste doit avoir une structure associée.
Options Peut être une combinaison des constantes suivantes:

#PB_Sort_Ascending : Trie la liste par ordre croissant (les plus petites valeurs en tête)
#PB_Sort_Descending: Trie la liste par ordre décroissant (les plus grandes valeurs en tête)

Et la constante suivante :
#PB_Sort_NoCase : Trie la liste 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.
OffsetOf(Structure\Champs) OffsetOf() peut être utilisé pour obtenir l'offset du champ dans la structure associée à la liste.
TypeOf(Structure\Champs TypeOf() définit le type du champ de la structure qui sert pour le tri. Les types disponibles sont:
  #PB_Byte     : Le champ de la structure est un octet (.b)
  #PB_Word     : Le champ de la structure est un word (.w)
  #PB_Long     : Le champ de la structure est un long (.l)
  #PB_String   : Le champ de la structure est un string (.s ou $). Les strings fixe (fixed strings) ne sont pas supportées)
  #PB_Float    : Le champ de la structure est un flottant (.f)
  #PB_Double   : Le champ de la structure est un double (.d)
  #PB_Quad     : Le champ de la structure est un quad (.q)
  #PB_Character: Le champ de la structure est un caractère (.c)
  #PB_Integer  : Le champ de la structure est un integer (.i)
  #PB_Ascii    : Le champ de la structure est un caractère ascii (.a)
  #PB_Unicode  : Le champ de la structure est un caractère unicode (.u)
Debut, Fin (optionnel) Ne trie que la plage de 'Debut' à 'Fin'.
Le premier élément d'une list a la position 0, le deuxième la position 1, etc..

Valeur de retour

Aucune.

Remarques

Notes: Les chaînes fixes (fixed strings) 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$),TypeOf(Animal\Nom$))
  
  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), TypeOf(Animal\Vitesse))
  
  ForEach Animaux()
    Debug Animaux()\Nom$+" - Vitesse : "+Str(Animaux()\Vitesse)
  Next

Voir aussi

SortArray(), SortList(), SortStructuredArray(), RandomizeArray(), RandomizeList(), Random(), RandomSeed()

OS Supportés

Tous

<- SortStructuredArray() - Sort Index