Syntaxe
Trie sur place une liste de nombres ou de textes.
SortList(<list>(), <options> [, <start>, <end>])Les éléments
| <list> | Une liste déclarée avec NewList, écrite avec ses parenthèses vides : scores(). |
|---|---|
| <options> | Obligatoire. #AK_ORDER_LOW_TO_HIGH (0), #AK_ORDER_HIGH_TO_LOW (1), et #AK_ORDER_FOLD_CASE (2) pour ignorer la casse. On les additionne pour les combiner : 3 trie du plus grand au plus petit en ignorant la casse. |
| <start> | Facultatif. La position du premier élément à trier, à partir de 0. |
| <end> | Facultatif, obligatoire avec <start>. La position du dernier élément à trier, comprise. |
À savoir
- Ne renvoie rien : écrivez-le seul sur sa ligne.
- Après le tri, il n'y a plus d'élément courant. Appelez FirstElement() ou ResetList() avant de lire
a(). - Sans
#AK_ORDER_FOLD_CASE, les textes se comparent par code de caractère : toutes les majuscules passent avant toutes les minuscules. - SortList(a()) seul est une erreur de compilation : les options sont obligatoires. Toute autre valeur arrête le programme avec « Unknown BASIC SortList option ».
- Sans
<start>ni<end>, toute la liste est prise. Donner seulement<start>compile, mais arrête le programme avec « BASIC collection range requires start and end ». Une plage hors de la liste l'arrête avec « BASIC collection range is out of bounds ». - Une liste de records arrête le programme avec « SortList requires a primitive typed list » : utilisez SortStructuredList().
Exemple
NewList a.integer()FOR k = 1 TO 4 AddElement(a()) a() = Mod(k * 7, 5)NEXTSortList(a(), #AK_ORDER_HIGH_TO_LOW)FOREACH a() Console(Str(a())) ' 4, 3, 2, 1NEXTDans le manuel : Tableaux, listes et maps