L4G >  Sorta  

Afficher tout Masquer tout

Sorta permet de trier des tableaux de variables, mono-dimensionnés.

 

Syntaxe

   Sorta [ rep ] liste_nom_var [ Order By liste_expr ]

 

Paramètres

Elément

Description

Restrictions

rep

Expression numérique entière du nombre d'éléments à trier. Par défaut, il s'agit du nombre d'éléments du premier tableau de la liste.

rep ne doit pas dépasser le nombre d'éléments du plus petit tableau.

liste_nom_var

Liste de nom_var séparées par le caractère ','.

Aucune.

nom_var

nom_de_variable désignant le tableau dans lequel s'effectue le tri. Dans le cas d'un tableau déroulant, il s'agit de la variable de bas de tableau.

Aucune.

liste_expr

Liste de expr séparées par le caractère ','.

Aucune.

expr

Expression de type quelconque.

Aucune.

 

Exemples

   # Tri des lignes d'un tableau déroulant selon le nom puis le prénom.
   # NLI est le nom de la variable de bas de tableau, elle contient donc
   # le nombre d'éléments du tableau.
    Sorta [M]NLI [M]NLI Order By NOM([S]indice), PRENOM([S]indice)

   # On dispose de 3 tableaux d'éléments NUM, CAR et NOM obtenus à partir
   # d'un jeu de libellés. NUM est un tableau d'entiers (numéros de

   # libellés), CAR un tableau de caractères (associés aux libellés) et
   # NOM un tableau de chaînes de caractères (intitulés) :

NUM

1

2

3

4

5

6

CAR

A

H

I

V

V

A

NOM

at386

hp

ibm3151

vt220

vt200

ansi (1)

 

   # Tri des 3 tableaux dans l'ordre des caractères, puis à égalité de 2
   # caractères dans l'ordre des libellés puis des valeurs de NUM
    Sorta CAR, NOM, NUM

   # Le résultat du tri est le suivant :

NUM

6

1

2

3

5

4

CAR

A

A

H

I

V

V

NOM

ansi

at386

hp

ibm3151

vt200

vt220

 

   # En repartant de la situation (1), tri des 3 tableaux dans l'ordre
   # des caractères
    Sorta CAR, NOM, NUM Order By CAR(indice)

   # Le résultat du tri est le suivant (par exemple, car l'ordre des
   # valeurs des tableaux NUM et NOM pour les indices 0 et 1 d'une part,
   # 4 et 5 d'autre part peut être différent le tri étant non conservatif

NUM

1

6

2

3

4

5

CAR

A

A

H

I

V

V

NOM

at386

ansi

hp

ibm3151

vt220

vt200

 

Description

L'instruction Sorta permet de trier des tableaux d'éléments à une dimension. Si le nombre d'éléments à trier n'est pas précisé, le tri se fait sur tous les éléments des tableaux.

Le sens du tri est ascendant. Toutefois, il est possible de trier un tableau sur un champ numéro selon un tri décroissant en multipliant ce champ par -1.

Lorsqu'il n'y a pas de clause Order By, le tri s'effectue dans l'ordre du premier tableau. En cas d'égalité d'éléments de ce tableau, il s'effectue dans l'ordre du deuxième tableau... et ainsi de suite pour l'ensemble des tableaux à trier.

Si un ordre est donné (les expressions étant construites à partir de la variable système indice), le tri s'effectue selon la valeur de la première expression, puis en cas d'égalité selon la valeur de la deuxième et ainsi de suite pour les suivantes.

Dans le cas d'un tableau déroulant, il est nécessaire de préciser le nombre d'éléments à trier ainsi que l'ordre du tri. D'autre part, le nom de variable à indiquer est celui de la variable de bas de tableau ; elle désigne alors l'ensemble des variables du tableau déroulant.

Précisons que le tri est non conservatif. Ceci signifie qu'en cas d'égalité d'éléments d'un tableau, on ne peut savoir dans quel ordre ces éléments égaux apparaîtront dans le résultat pour les autres tableaux (à moins d'avoir donné d'autres critères).

 

Remarques

On peut trier des tableaux comportant des nombres d'éléments différents. Dans ce cas, il faut donner une valeur au paramètre rep au plus égale à la plus petite taille des tableaux.

 

Erreurs associées

Erreur

Description

ERMODE (10)

rep n'est pas numérique.

ERINDI ( 8)

Indice incorrect.

ERDOM (50)

rep < 0.

 

Mots-clés associés

INSA - DELA