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
  • Cas particuliers
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
Cherche l'indice d'un élément dans un tableau WLangage. Il est possible d'effectuer les recherches suivantes :
  • Recherche d'un élément dans un tableau d'éléments simples à une dimension.
  • Recherche d'un élément dans un tableau d'éléments simples à 2 dimensions selon une colonne.
  • Recherche d'un élément dans un tableau d'éléments simples à 2 dimensions selon plusieurs colonnes.
  • Recherche d'un élément dans un tableau de structures ou de classes à une dimension.
  • WINDEVWEBDEV - Code Serveur Recherche d'un élément dans un tableau d'enregistrements.
  • Recherche d'un objet dans un tableau.
PHP Remarque : En PHP, la recherche dans un tableau à plus d'une dimension ou dans un tableau de structures n'est pas disponible.
Exemple
tabMonTableau est un tableau de 0 chaîne
// Remplir le tableau
tabMonTableau.Ajoute("WINDEV")
tabMonTableau.Ajoute("WEBDEV")
tabMonTableau.Ajoute("WINDEV et WEBDEV")
// Chercher "WINDEV"
ResIndice est un entier
ResIndice = tabMonTableau.Cherche(tcLinéairePremier, "WINDEV")
Info("La chaîne WINDEV est à l'indice : " + ResIndice)
// Retourne : "La chaîne WINDEV est à l'indice : 1"
WINDEVWEBDEV - Code ServeurEtats et RequêtesWindowsCode Utilisateur (MCU)
tabAgenda est un tableau de gglAgendas
// On recherche un agenda connu par son titre
tabAgenda.Cherche(tcLinéaire, "titre", "Agenda professionnel")
Syntaxe

Recherche d'un élément dans un tableau d'éléments simples à 1 dimension Masquer les détails

<Résultat> = <Tableau WLangage>.Cherche(<Type de recherche> , <Valeur recherchée> [, <Indice de départ>])
<Résultat> : Entier
  • Indice de l'élément recherché,
  • -1 si l'élément n'est pas trouvé dans le tableau.
<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 à une dimension associé à une propriété d'une variable de type avancé.
<Type de recherche> : Constante de type entier
Type de recherche à effectuer :
tcDichotomiqueRecherche dichotomique.
Ce mode de recherche est rapide mais il doit être utilisé sur un tableau trié par ordre croissant, sans doublons.
Les options de recherche (ordre lexicographique, sans ponctuation, ...) doivent être exactement les mêmes pour la recherche (fonction <Tableau>.Cherche) et pour le tri (fonction <Tableau>.Trie).
tcLinéaireRecherche linéaire. La recherche démarre :
  • soit à partir du premier élément.
  • soit à partir de la valeur du paramètre <Indice de départ>.
La recherche s'arrête au premier élément trouvé.
tcLinéaireDernierRecherche linéaire à partir du dernier élément. Cette constante ne doit pas être utilisée si le paramètre <Indice de départ> est précisé.
tcLinéairePrécédentRecherche linéaire de l'élément précédent. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.
tcLinéairePremierRecherche linéaire à partir du premier élément. Lorsque cette constante est utilisée, le paramètre <Indice de départ> n'est pas pris en compte.
tcLinéaireSuivantRecherche linéaire de l'élément suivant. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.

Le type de recherche peut être combiné avec une ou plusieurs options de recherche :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option est utile uniquement pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option est utilisable 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 pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentRecherche sans tenir compte des accents.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseRecherche sans tenir compte de la casse.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceRecherche sans tenir compte des espaces au début et à la fin des chaînes.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceIntérieurRecherche sans tenir compte des espaces à l'intérieur des chaînes.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
tccSansPonctuationNiEspaceRecherche sans tenir compte des espaces et des ponctuations.
Cette option est utilisable 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 définir les options de recherche ne sont pas disponibles.
Dans le cas d'une recherche dichotomique, il est indispensable que les options de recherche soient exactement les mêmes que les options qui ont permis de trier le tableau (voir fonction <Tableau>.Trie).
<Valeur recherchée> : Tout type
Valeur de l'élément dont l'indice est recherché.
<Indice de départ> : Entier optionnel
Position de départ de la recherche (uniquement pour une recherche linéaire). Pour la recherche dichotomique, ce paramètre n'est pas nécessaire.
PHP Syntaxe non disponible en PHP

Recherche d'un élément dans un tableau d'éléments simples à 2 dimensions selon une colonne Masquer les détails

<Résultat> = <Tableau WLangage>.Cherche(<Type de recherche> , <Colonne> , <Valeur recherchée> [, <Indice de départ>])
<Résultat> : Entier
  • Indice de l'élément recherché,
  • -1 si l'élément n'est pas trouvé dans le tableau.
<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 associé à une propriété d'une variable de type avancé (par exemple tri d'une variable de type xlsDocument selon les valeurs d'une colonne).
<Type de recherche> : Constante de type entier
Recherche à effectuer :
tcDichotomiqueRecherche dichotomique.
Ce mode de recherche est rapide mais il doit être utilisé sur un tableau trié par ordre croissant, sans doublons et en utilisant exactement les mêmes options de recherche que celles utilisées pour le tri (fonction <Tableau>.Trie).
tcLinéaireRecherche linéaire. La recherche démarre :
  • soit à partir du premier élément.
  • soit à partir de la valeur du paramètre <Indice de départ>.
La recherche s'arrête au premier élément trouvé.
tcLinéaireDernierRecherche linéaire à partir du dernier élément. Cette constante ne doit pas être utilisée si le paramètre <Indice de départ> est précisé.
tcLinéairePrécédentRecherche linéaire de l'élément précédent. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.
tcLinéairePremierRecherche linéaire à partir du premier élément. Cette constante ne doit pas être utilisée si le paramètre <Indice de départ> est précisé.
tcLinéaireSuivantRecherche linéaire de l'élément suivant. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.

Le type de recherche peut être combiné avec une ou plusieurs options de recherche :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option est utile uniquement pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option est utilisable 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 pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentRecherche sans tenir compte des accents.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseRecherche sans tenir compte de la casse.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceRecherche sans tenir compte des espaces au début et à la fin des chaînes.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceIntérieurRecherche sans tenir compte des espaces à l'intérieur des chaînes.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
tccSansPonctuationNiEspaceRecherche sans tenir compte des espaces et des ponctuations.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.

AndroidWidget AndroidJava Les constantes permettant de définir les options de recherche ne sont pas disponibles.
Dans le cas d'une recherche dichotomique, il est indispensable que les options de recherche soient exactement les mêmes que les options qui ont permis de trier le tableau (voir fonction <Tableau>.Trie).
<Colonne> : Entier ou chaîne de caractères
  • Tableau simple : Indice de la colonne où la recherche doit être effectuée.
  • Tableau de type avancé : Propriété pour laquelle la recherche doit être effectuée. Il est également possible d'utiliser des propriétés chaînées (par exemple "Cadre.Couleur").
<Valeur recherchée> : Tout type
Valeur de l'élément dont l'indice / la propriété est recherché.
<Indice de départ> : Entier optionnel
Position de départ de la recherche (uniquement pour une recherche linéaire). Pour la recherche dichotomique, ce paramètre n'est pas nécessaire.
PHP Syntaxe non disponible en PHP

Recherche d'un élément dans un tableau d'éléments simples à 2 dimensions selon plusieurs colonnes. Masquer les détails

<Résultat> = <Tableau WLangage>.Cherche(<Type de recherche> , <Colonnes> , <Valeur recherchée 1> [, <Valeur recherchée 2> [... [, <Valeur recherchée N>]]] [, <Indice de départ>])
<Résultat> : Entier
  • Indice de l'élément recherché,
  • -1 si l'élément n'est pas trouvé dans le tableau.
<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).
<Type de recherche> : Constante de type entier
Recherche à effectuer. La recherche dichotomique n'est pas disponible.
tcLinéaireRecherche linéaire. La recherche démarre :
  • soit à partir du premier élément.
  • soit à partir de la valeur du paramètre <Indice de départ>.
La recherche s'arrête au premier élément trouvé.
tcLinéaireDernierRecherche linéaire à partir du dernier élément. Cette constante ne doit pas être utilisée si le paramètre <Indice de départ> est précisé.
tcLinéairePrécédentRecherche linéaire de l'élément précédent. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.
tcLinéairePremierRecherche linéaire à partir du premier élément. Cette constante ne doit pas être utilisée si le paramètre <Indice de départ> est précisé.
tcLinéaireSuivantRecherche linéaire de l'élément suivant. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.
Le type de recherche peut être combiné avec une ou plusieurs options de recherche :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option est utile uniquement pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option s'applique à toutes les colonnes sur lesquelles la recherche est effectuée.
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 pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option s'applique à toutes les colonnes sur lesquelles la recherche est effectuée.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentRecherche sans tenir compte des accents.
Cette option s'applique à toutes les colonnes sur lesquelles la recherche est effectuée.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseRecherche sans tenir compte de la casse.
Cette option s'applique à toutes les colonnes sur lesquelles la recherche est effectuée.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceRecherche sans tenir compte des espaces au début et à la fin des chaînes.
Cette option s'applique à toutes les colonnes sur lesquelles la recherche est effectuée.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansEspaceIntérieurRecherche sans tenir compte des espaces à l'intérieur des chaînes.
Cette option s'applique à toutes les colonnes sur lesquelles la recherche est effectuée.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
tccSansPonctuationNiEspaceRecherche sans tenir compte des espaces et des ponctuations.
Cette option s'applique à toutes les colonnes sur lesquelles la recherche est effectuée.
Cette option est utile uniquement sur les tableaux de chaînes de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.

AndroidWidget AndroidJava Les constantes permettant de définir les options de recherche ne sont pas disponibles.
Dans le cas d'une recherche dichotomique, il est indispensable que les options de recherche soient exactement les mêmes que les options qui ont permis de trier le tableau (voir fonction <Tableau>.Trie).
<Colonnes> : Chaîne de caractères
  • Tableau simple : Liste des colonnes dans lesquelles la recherche doit être effectuée. Les différentes colonnes doivent être séparées par un point virgule. Exemple : "2;3" pour faire une recherche sur les colonnes 2 et 3.
  • Tableau de type avancé : Liste des propriétés dans lesquelles la recherche doit être effectuée. Les différentes propriétés doivent être séparées par un point virgule.
<Valeur recherchée 1> : Tout type
Valeur de l'élément dont l'indice / la propriété est recherché. Il est nécessaire d'indiquer une valeur pour chaque colonne / propriété spécifiée dans le paramètre <Colonnes>.
<Valeur recherchée 2> : Tout type optionnel
Valeur de l'élément dont l'indice / la propriété est recherché. Il est nécessaire d'indiquer une valeur pour chaque colonne / propriété spécifiée dans le paramètre <Colonnes>.
<Valeur recherchée N> : Tout type optionnel
Valeur de l'élément dont l'indice / la propriété est recherché. Il est nécessaire d'indiquer une valeur pour chaque colonne / propriété spécifiée dans le paramètre <Colonnes>.
<Indice de départ> : Entier optionnel
Position de départ de la recherche (uniquement pour une recherche linéaire). Pour la recherche dichotomique, ce paramètre n'est pas nécessaire.

Recherche d'un élément dans un tableau de structures, de classes, de types avancés à 1 dimension ou d'enregistrements. Masquer les détails

<Résultat> = <Tableau WLangage>.Cherche(<Type de recherche> , <Membres recherchés> , <Valeur recherchée 1> , <Valeur recherchée 2> ... , <Valeur recherchée N> [, <Indice de départ>])
<Résultat> : Entier
  • Indice de l'élément recherché,
  • -1 si l'élément n'est pas trouvé dans le tableau.
<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,
    PHP La recherche dans un tableau de structures n'est pas disponible.
  • un tableau de types avancés,
  • WINDEVWEBDEV - Code Serveur un tableau d'enregistrements.
<Type de recherche> : Constante de type entier
Type de recherche à effectuer :
tcDichotomiqueRecherche dichotomique.
Ce mode de recherche est rapide mais il doit être utilisé sur un tableau trié par ordre croissant, sans doublons et en utilisant exactement les mêmes options de recherche que celles utilisées pour le tri (fonction <Tableau>.Trie).
Ce mode de recherche peut être utilisé uniquement lors d'une recherche sur un seul membre.
tcLinéaireRecherche linéaire. La recherche démarre :
  • soit à partir du premier élément.
  • soit à partir de la valeur du paramètre <Indice de départ>.
La recherche s'arrête au premier élément trouvé.
tcLinéaireDernierRecherche linéaire à partir du dernier élément. Cette constante ne doit pas être utilisée si le paramètre <Indice de départ> est précisé.
tcLinéairePrécédentRecherche linéaire de l'élément précédent. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.
tcLinéairePremierRecherche linéaire à partir du premier élément. Cette constante ne doit pas être utilisée si le paramètre <Indice de départ> est précisé.
tcLinéaireSuivantRecherche linéaire de l'élément suivant. Cette recherche est effectuée à partir de la position en cours ou de la valeur du paramètre <Indice de départ>.

Le type de recherche peut être combiné avec une ou plusieurs options de recherche :
tccOrdreLexicographiqueTableau trié selon l'ordre linguistique.
Cette option est utile uniquement pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option s'applique à tous les membres sur lesquels la recherche est effectuée.
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 est utile uniquement pour une recherche dichotomique et n'a aucun effet sur une recherche linéaire.
Cette option s'applique à tous les membres sur lesquels la recherche est effectuée.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansAccentRecherche sans tenir compte des accents.
Cette option s'applique à tous les membres sur lesquels la recherche est effectuée.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
tccSansCasseRecherche sans tenir compte de la casse.
Cette option s'applique à tous les membres sur lesquels la recherche est effectuée.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
tccSansEspaceRecherche sans tenir compte des espaces au début et à la fin des chaînes.
Cette option s'applique à tous les membres sur lesquels la recherche est effectuée.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
tccSansEspaceIntérieurRecherche sans tenir compte des espaces à l'intérieur des chaînes.
Cette option s'applique à tous les membres sur lesquels la recherche est effectuée.
Cette option est utile uniquement sur les membres de type chaîne de caractères.
tccSansPonctuationNiEspaceRecherche sans tenir compte des espaces et des ponctuations.
Cette option s'applique à tous les membres sur lesquels la recherche est effectuée.
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 définir les options de recherche ne sont pas disponibles.
Dans le cas d'une recherche dichotomique, il est indispensable que les options de recherche soient exactement les mêmes que les options qui ont permis de trier le tableau (voir fonction <Tableau>.Trie).
<Membres recherchés> : Chaîne de caractères
  • Structures et classes : Nom des membres recherchés. Si plusieurs membres sont recherchés, leurs noms doivent être séparés par des points-virgules. Il est également possible de chaîner les membres à rechercher (en utilisant "." ou ":" entre les membres). Dans une classe, il est également possible d'effectuer une recherche sur les propriétés de la classe.
  • Types avancés : Nom des propriétés recherchées. Si plusieurs propriétés sont recherchées, leurs noms doivent être séparés par des points-virgules. Il est également possible de chaîner les propriétés à rechercher (en utilisant "." ou ":" entre les propriétés). Par exemple "Cadre.Couleur".
  • Enregistrements : Nom des rubriques recherchées. Si plusieurs rubriques sont recherchées, leurs noms doivent être séparés par des points-virgules. Il est également possible de chaîner les rubriques à rechercher (en utilisant "." ou ":" entre les propriétés).
<Valeur recherchée 1> : Tout type
Valeur de l'élément dont le membre ou la propriété est recherché. Il est nécessaire d'indiquer une valeur pour chaque membre spécifié dans le paramètre <Membres recherchés>.
<Valeur recherchée 2> : Tout type optionnel
Valeur de l'élément dont le membre ou la propriété est recherché. Il est nécessaire d'indiquer une valeur pour chaque membre spécifié dans le paramètre <Membres recherchés>.
<Valeur recherchée N> : Tout type optionnel
Valeur de l'élément dont le membre ou la propriété est recherché. Il est nécessaire d'indiquer une valeur pour chaque membre spécifié dans le paramètre <Membres recherchés>.
<Indice de départ> : Entier optionnel
Position de départ de la recherche (uniquement pour une recherche linéaire). Pour la recherche dichotomique, ce paramètre n'est pas nécessaire.

Recherche de l'indice d'un objet dans un tableau à une dimension (syntaxe pour le data binding) Masquer les détails

<Résultat> = <Tableau WLangage>.Cherche(<Type de recherche> , <Objet recherché>)
<Résultat> : Entier
  • Indice de l'objet recherché,
  • -1 si l'objet n'est pas trouvé dans le tableau.
<Tableau WLangage> : Tableau
Nom de la variable de type Tableau à manipuler.
<Type de recherche> : Constante de type entier
Type de recherche à effectuer :
tcLinéaireRecherche linéaire.
<Objet recherché> : Tout type
Instance de l'objet recherché.
Remarques

Cas particuliers

  • Cette fonction ne peut pas être utilisée sur les tableaux fixes.
  • Cette fonction est utilisable sur les tableaux des variables de type avancé.
  • Cette fonction ne peut pas être utilisée sur les tableaux d'objets de type "Objet dynamique". Il est nécessaire de typer les objets.
  • Cette fonction doit être utilisée sur des tableaux d'objets typés.
    • Par exemple, il n'est pas possible de faire une recherche sur le tableau suivant :
      t est un tableau de 2 objets dynamiques
    • Par contre, il est possible de faire une recherche sur le tableau suivant :
      t est un tableau de 2 MaClass

      t est un tableau de 2 MaClass dynamique
  • Il n'est pas possible d'effectuer des recherches sur un tableau de variants.
  • AndroidWidget AndroidJava Si le type de la recherche est dichotomique et que le tableau n'est pas trié, aucune erreur WLangage ne sera affichée mais le résultat de la recherche sera indéterminé.
Composante : wd290vm.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