DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des files, piles, listes et tableaux / Fonctions Tableau
  • Divers
  • Exemples de procédure de tri personnalisée
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Trie un tableau WLangage. Les différents tris suivants peuvent être réalisés :
  • Tri d'un tableau d'éléments simples à une dimension.
  • Tri d'un tableau d'éléments simples à deux dimensions selon une ou plusieurs colonnes.
  • Tri d'un tableau de classes ou de structures à une dimension selon 1 ou plusieurs membres.
  • WINDEVWEBDEV - Code Serveur Tri d'un tableau d'enregistrements selon 1 ou plusieurs rubriques.
  • Tri d'un tableau à une dimension en fournissant une procédure de comparaison.
Exemple
// Tri d'un tableau à une dimension
MonTableau est un tableau de 2 entiers
MonTableau[1] = 4
MonTableau[2] = 1
MonTableau.Trie(ttCroissant)
Trace(MonTableau[1], MonTableau[2])
// Affiche "1" puis "4"
// Tri d'un tableau à 2 dimensions selon la 2ème colonne
MonTableau.Trie(ttCroissant, 2)
// Tri d'un tableau à 2 dimensions selon la 2ème colonne
// (croissant) et la 3ème colonne (décroissant)
MonTableau.Trie(ttColonne, "2;-3")
// Tri d'un tableau en utilisant 1 procédure de comparaison
MonTableau.Trie(ttFonction, Compare)
 
// Procédure de comparaison
PROCÉDURE INTERNE Compare(Elément1, Elément2)
SI Elément1.Membre < Elément2.Membre ALORS RENVOYER -1
SI Elément1.Membre > Elément2.Membre ALORS RENVOYER 1
RENVOYER 0
Syntaxe

Tri d'un tableau d'éléments simples à une dimension Masquer les détails

<Tableau WLangage>.Trie([<Type de tri>])
<Tableau WLangage> : Tableau
  • Nom de la variable de type Tableau à manipuler. Ce tableau doit être un tableau à une dimension.
    Ce tableau peut également correspondre à un tableau d'éléments simples d'une variable de type avancé (par exemple, tableau "Groupe" dans les variables de type gglContact).
  • Nom de la variable de type Tableau associatif à manipuler.
    AndroidJavaPHP Les tableaux associatifs ne peuvent être être triés dans cette version.
<Type de tri> : Constante optionnelle de type entier
Type de tri à effectuer :
ttCroissant
(Valeur par défaut)
Tri croissant.
Cas d'un tableau associatif : Tri des éléments du tableau associatif :
  • si la constante ttClé est précisée : Le tri est effectué selon l'ordre croissant des clés. En cas d'égalité entre deux clés, les valeurs sont triées selon la valeur croissante si les valeurs sont comparables. Si les valeurs ne sont pas comparables, l'ordre initial est conservé.
  • si la constante ttClé n'est pas précisée : Le tri est effectué selon l'ordre croissant des valeurs. En cas d'égalité entre deux valeurs, les valeurs sont triées selon la clé croissante.
ttDécroissantTri décroissant.
Cas d'un tableau associatif : Tri des éléments du tableau associatif :
  • si la constante ttClé est précisée : Le tri est effectué selon l'ordre décroissant des clés. En cas d'égalité entre deux clés, les valeurs sont triées selon la valeur décroissante si les valeurs sont comparables. Si les valeurs ne sont pas comparables, l'ordre initial est conservé.
  • si la constante ttClé n'est pas précisée : Le tri est effectué selon l'ordre décroissant des valeurs. En cas d'égalité entre deux valeurs, les valeurs sont triées selon la clé décroissante.

Le type de tri peut être combiné avec une ou plusieurs options de tri :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccRespecteNumériqueTableau trié en respectant l'ordre des valeurs numériques.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentTableau trié sans tenir compte des accents.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseTableau trié sans tenir compte de la casse.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceTableau trié sans tenir compte des espaces au début et à la fin des chaînes.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceIntérieurTableau trié sans tenir compte des espaces à l'intérieur des chaînes.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansPonctuationNiEspaceTableau trié sans tenir compte des espaces et des ponctuations.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
ttCléTableau associatif trié selon l'ordre des clés. Si cette constante n'est pas spécifié, le tableau associatif est trié selon l'ordre des valeurs.
Cette option est utile uniquement sur les tableaux associatifs.

AndroidWidget AndroidJavaPHP Les constantes permettant de spécifier les options de tri ne sont pas disponibles.

Tri d'un tableau d'éléments simples à deux dimensions selon une colonne Masquer les détails

<Tableau WLangage>.Trie([<Type de tri>, ] <Colonne>)
<Tableau WLangage> : Tableau
Nom de la variable de type Tableau à manipuler. Ce tableau doit être un tableau à 2 dimensions.
Ce tableau peut également correspondre à un tableau à deux dimensions d'un type avancé (par exemple tri d'une variable de type xlsDocument selon les valeurs d'une colonne).
<Type de tri> : Constante optionnelle de type entier
Type de tri à effectuer :
ttCroissant
(Valeur par défaut)
Tri croissant
ttDécroissantTri décroissant

Le type de tri peut être combiné avec une ou plusieurs options de tri :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccRespecteNumériqueTableau trié en respectant l'ordre des valeurs numériques.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentTableau trié sans tenir compte des accents.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseTableau trié sans tenir compte de la casse.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceTableau trié sans tenir compte des espaces au début et à la fin des chaînes.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceIntérieurTableau trié sans tenir compte des espaces à l'intérieur des chaînes.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansPonctuationNiEspaceTableau trié sans tenir compte des espaces et des ponctuations.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.

AndroidWidget AndroidJavaPHP Les constantes permettant de spécifier les options de tri ne sont pas disponibles.
WEBDEV - Code Navigateur Ce paramètre est obligatoire.
<Colonne> : Entier
Indice de la colonne où le tri doit être effectué.

Tri d'un tableau d'éléments simples à deux dimensions selon plusieurs colonnes Masquer les détails

<Tableau WLangage>.Trie(<ttColonne> , <Colonnes>)
<Tableau WLangage> : Tableau
Nom de la variable de type Tableau à manipuler. Ce tableau doit être un tableau à 2 dimensions.
Ce tableau peut également correspondre à un tableau à deux dimensions d'un type avancé (par exemple tri d'une variable de type xlsDocument selon les valeurs d'une ou de plusieurs colonnes).
<ttColonne> : Constante
ttColonne : Constante permettant de trier un tableau d'éléments simples à deux dimensions selon plusieurs colonnes.
La constante ttColonne peut être combinée avec une ou plusieurs options de tri :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option s'applique à toutes les colonnes sur lesquelles le tri est effectué.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccRespecteNumériqueTableau trié en respectant l'ordre des valeurs numériques.
Cette option s'applique à toutes les colonnes sur lesquelles le tri est effectué.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentTableau trié sans tenir compte des accents.
Cette option s'applique à toutes les colonnes sur lesquelles le tri est effectué.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseTableau trié sans tenir compte de la casse.
Cette option s'applique à toutes les colonnes sur lesquelles le tri est effectué.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceTableau trié sans tenir compte des espaces au début et à la fin des chaînes.
Cette option s'applique à toutes les colonnes sur lesquelles le tri est effectué.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceIntérieurTableau trié sans tenir compte des espaces à l'intérieur des chaînes.
Cette option s'applique à toutes les colonnes sur lesquelles le tri est effectué.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansPonctuationNiEspaceTableau trié sans tenir compte des espaces et des ponctuations.
Cette option s'applique à toutes les colonnes sur lesquelles le tri est effectué.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.

AndroidWidget AndroidJavaPHP Les constantes permettant de spécifier les options de tri ne sont pas disponibles.
<Colonnes> : Chaîne de caractères
Liste des colonnes dans lesquelles le tri doit être effectué. Les différentes colonnes doivent être séparées par un point virgule. Pour indiquer le sens du tri, l'indice de la colonne doit être précédé :
  • du signe "+" (ou de rien) pour un tri croissant.
  • du signe "-" pour un tri décroissant.
    Par exemple : "2;-3" pour effectuer un tri croissant sur la seconde colonne et un tri décroissant sur la troisième colonne.

Tri d'un tableau de classes, de structures ou d'enregistrements à une dimension Masquer les détails

<Tableau WLangage>.Trie(<ttMembre> , <Membres>)
<Tableau WLangage> : Tableau
  • Nom de la variable de type Tableau à manipuler. Ce tableau doit être un tableau à une dimension. Ce tableau peut être :
    • un tableau de classes,
    • un tableau de structures,
    • un tableau de types avancés,
    • WINDEVWEBDEV - Code Serveur un tableau d'enregistrements.
  • Nom de la variable de type Tableau associatif à manipuler. Ce tableau peut être :
    • un tableau associatif de classes,
    • un tableau associatif de structures,
    • un tableau associatif de types avancés,
      AndroidJavaPHP Les tableaux associatifs ne peuvent être être triés dans cette version.
    • WINDEVWEBDEV - Code Serveur un tableau associatif d'enregistrements.
<ttMembre> : Constante
ttMembre : Constante permettant de trier un tableau de classes, de structures ou d'enregistrements à une dimension.
Cas d'un tableau associatif : Les éléments du tableau associatif sont triés selon l'ordre des valeurs des membres précisés. En cas d'égalité entre deux valeurs, les valeurs sont triées selon la clé croissante ou décroissante (selon le sens de tri du premier membre).
La constante ttMembre peut être combinée avec une ou plusieurs options de tri :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option s'applique à tous les membres sur lesquels le tri est effectué.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccRespecteNumériqueTableau trié en respectant l'ordre des valeurs numériques.
Cette option s'applique à tous les membres sur lesquels le tri est effectué.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentTableau trié sans tenir compte des accents.
Cette option s'applique à tous les membres sur lesquels le tri est effectué.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseTableau trié sans tenir compte de la casse.
Cette option s'applique à tous les membres sur lesquels le tri est effectué.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
tccSansEspaceTableau trié sans tenir compte des espaces au début et à la fin des chaînes.
Cette option s'applique à tous les membres sur lesquels le tri est effectué.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
tccSansEspaceIntérieurTableau trié sans tenir compte des espaces à l'intérieur des chaînes.
Cette option s'applique à tous les membres sur lesquels le tri est effectué.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
tccSansPonctuationNiEspaceTableau trié sans tenir compte des espaces et des ponctuations.
Cette option s'applique à tous les membres sur lesquels le tri est effectué.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.

AndroidWidget AndroidJavaPHP Les constantes permettant de spécifier les options de tri ne sont pas disponibles.
<Membres> : Chaîne de caractères
Nom des membres utilisés comme critère de tri. Si le tri est effectué sur plusieurs membres, leurs noms doivent être séparés par des points-virgules. Pour indiquer le sens du tri, le nom du membre doit être précédé :
  • du signe "+" (ou de rien) pour un tri croissant.
  • du signe "-" pour un tri décroissant.
  • du signe "." ou ":" pour effectuer un tri sur des propriétés chaînées.
    Par exemple :
    - "Membre1;-Membre3" pour effectuer un tri croissant sur le membre membre1 et un tri décroissant sur le membre Membre3.
    - "Source.URL" pour effectuer un tri sur la propriété URL de la propriété Source.
WINDEVWEBDEV - Code Serveur Tri d'un tableau d'enregistrements : Nom des rubriques utilisées comme critère de tri.

Tri d'un tableau à une dimension avec une procédure de tri Masquer les détails

<Tableau WLangage>.Trie(<ttFonction> , <Procédure de tri WLangage>)
<Tableau WLangage> : Tableau
  • Nom de la variable de type Tableau à manipuler. Ce tableau doit être un tableau à une dimension. Ce tableau peut être un tableau de types avancés.
  • Nom de la variable de type Tableau associatif à manipuler.
    AndroidJavaPHP Les tableaux associatifs ne peuvent être être triés dans cette version.
<ttFonction> : Constante
ttFonction : Constante permettant de trier un tableau à une dimension avec une procédure de tri.
<Procédure de tri WLangage> : Nom de procédure
Nom de la procédure utilisée pour trier les éléments du tableau.
  • Cas d'un tableau à une dimension : Procédure WLangage de la forme :
    PROCEDURE MaProcédure(Elément1, Elément2)

    Cette procédure est appelée automatiquement par le mécanisme de tri pour comparer les éléments entre eux deux par deux.
    Si l'élément 1 doit être situé avant l'élément 2 dans l'ordre de tri, la procédure doit renvoyer -1.
    Si l'élément 1 doit être situé après l'élément 2 dans l'ordre de tri, la procédure doit renvoyer 1.
    Si l'élément 1 et l'élément 2 sont identiques, la procédure doit renvoyer 0.
  • Cas d'un tableau associatif : Procédure WLangage de la forme :
    PROCEDURE MaProcédure(Valeur1, Clé1, Valeur2, Clé2)

    Cette procédure est appelée automatiquement par le mécanisme de tri pour comparer les éléments entre eux deux par deux. La comparaison peut être effectuée dans la procédure de tri soit selon les valeurs, soit selon les clés.
    Si l'élément 1 doit être situé avant l'élément 2 dans l'ordre de tri, la procédure doit renvoyer -1.
    Si l'élément 1 doit être situé après l'élément 2 dans l'ordre de tri, la procédure doit renvoyer 1.
    Si l'élément 1 et l'élément 2 sont identiques, la procédure doit renvoyer 0.
Remarques

Divers

  • Cette fonction ne peut pas être utilisée avec les tableaux fixes.
  • Tableau dynamique de variants : Seul un tri personnalisé (avec une procédure de tri) peut être utilisée.
  • Cette fonction ne peut pas être utilisée avec des tableaux de chaînes UNICODE.
  • Pour ajouter un élément dans un tableau trié, utilisez la fonction <Tableau>.AjouteTrié.
  • Cette fonction est utilisable sur les tableaux des variables de type avancé.
  • Cette fonction est disponible sur les tableaux associatifs.
    AndroidJavaPHP Cette fonctionnalité n'est pas disponible.

Exemples de procédure de tri personnalisée

Exemple de procédure pour comparer 2 entiers :
PROCÉDURE MaProcédure(nEntier1, nEntier2)
SI nEntier1 > nEntier2 ALORS RENVOYER 1
SI nEntier1 < nEntier2 ALORS RENVOYER -1
RENVOYER 0
Exemple de procédure pour comparer deux éléments d'un tableau de structures :
PROCÉDURE MaProcédure(stVar1, stVar2)
SI stVar1:nEntier > stVar2:nEntier ALORS RENVOYER 1
SI stVar1:nEntier < stVar2:nEntier ALORS RENVOYER -1
RENVOYER 0
Composante : wd300vm.dll
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 19/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale