SortList

Commande de liste

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, 1NEXT
Dans le manuel : Tableaux, listes et maps