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.
  • Recherche d'un objet dans un tableau.
Remarques :
  • Cette fonction est équivalente à la fonction Cherche.
Exemple
tabMonTableau est un tableau de 0 chaîne
// Remplir le tableau
TableauAjoute(tabMonTableau, "WINDEV")
TableauAjoute(tabMonTableau, "WEBDEV")
TableauAjoute(tabMonTableau, "WINDEV et WEBDEV")
// Chercher "WINDEV"
ResIndice est un entier
ResIndice = TableauCherche(tabMonTableau, tcLinéairePremier, "WINDEV")
Info("La chaîne WINDEV est à l'indice : " + ResIndice)
// Retourne : "La chaîne WINDEV est à l'indice : 1"
Etats et RequêtesWindows
tabAgenda est un tableau de gglAgendas
// On recherche un agenda connu par son titre
TableauCherche(tabAgenda, 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> = TableauCherche(<Tableau WLangage> , <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 TableauCherche) et pour le tri (fonction TableauTrie).
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.
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.
tccSansAccentRecherche sans tenir compte des accents.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
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.

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 TableauTrie).
<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.

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

<Résultat> = TableauCherche(<Tableau WLangage> , <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 TableauTrie).
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.
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.
tccSansAccentRecherche sans tenir compte des accents.
Cette option est utilisable uniquement sur les tableaux de chaînes de caractères.
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.

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 TableauTrie).
<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.

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

<Résultat> = TableauCherche(<Tableau WLangage> , <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.
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.
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.
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.

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 TableauTrie).
<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> = TableauCherche(<Tableau WLangage> , <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,
  • un tableau de types avancés,
<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 TableauTrie).
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.
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.
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.
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.

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 TableauTrie).
<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> = TableauCherche(<Tableau WLangage> , <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. Ce tableau doit être un tableau à une dimension. Ce tableau peut être un tableau de classes, de classes dynamiques, de structures, de structures dynamiques, de types avancés, de types avancés dynamiques.
<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.
Composante : wd290vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
2 exemples de recherche sur des tableaux à 2 dimensions
Pour illustrer la documentation, voici 2 exemples simples :
- Recherche d'un élément dans un tableau d'éléments simples à 2 dimensions selon une colonne

MonTab est un tableau de 2 par 3 entiers
MonTab[1][1] = 100
MonTab[1][2] = 10
MonTab[1][3] = 20
MonTab[2][1] = 200
MonTab[2][2] = 30
MonTab[2][3] = 40

Index = TableauCherche(MonTab,tcLinéairePremier,1,200)
// ==> index = 2

Index = TableauCherche(MonTab,tcLinéairePremier,"1;2;3",100,10,20)
// ==> Index = 1

Fabrice
21 nov. 2013

Dernière modification : 04/07/2022

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