ADELIA |
VADELIA |
SADELIA |
WADELIA |
EADELIA |
(I/B) |
(I/B) (C/S) |
(B) (S) |
(I/B) (C/S) |
(B) (C/S) |
Paragraphe d'utilisation
Tous
Syntaxe
RECHERCHE OpérateurLogique IdVar Table
Description
Cet ordre permet de rechercher une valeur particulière dans un poste de table de dimension 1 (non valide pour les tables à 2 dimensions).
Cette recherche peut s'effectuer par égalité, infériorité ou supériorité, grâce aux opérateurs logiques =, < ou >.
L'argument de recherche et les postes de la table doivent avoir la même longueur et le même type (numérique ou alphanumérique).
Pour savoir si la recherche a abouti, il faut tester le mot réservé *TROUVE (il vaut 1 en cas de réussite, sinon 0).
La recherche commence à partir de la position de la valeur de l'indice dans la table (1 si la table n'est pas indexée).
Si la recherche aboutit et que la table est indexée, l'indice pointe sur le poste de la table vérifiant la recherche.
L'indice est remis à 1 si la recherche n'a pas abouti.
Par exemple
* TBL_MOIS est un tableau de 12 éléments:
* 1 2 3 4 5 6 7 8 9 10 11 12
* JAN FEV MAR AVR MAI JUN JUL AOU SEP OCT NOV DEC
* Z_MOIS est une zone écran qui contient la valeur 'MAI'
* Premier essai, sans indice
*
RECHERCHE = Z_MOIS TBL_MOIS
SI *TROUVE = '0'
PREPARER_MSG 0013 Z_MOIS
ERREUR
FIN
* deuxième essai, avec indice, utilisé pour récupérer une valeur correspondante
* (dans un autre tableau intitulé TBL_VALEURS)
*
N = 1
RECHERCHE = Z_MOIS TBL_MOIS(N)
SI *TROUVE = '0'
PREPARER_MSG 0013 Z_MOIS
ERREUR
SINON
RESULTAT = TBL_VALEURS(N)
FIN
* troisième essai, avec indice,utilisé pour récupérer une valeur correspondante
* (dans un autre tableau intitulé TBL_VALEURS)
*
N = 7
RECHERCHE = Z_MOIS TBL_MOIS(N)
* dans ce cas, puisque Z_MOIS est égal à 'MAI', *TROUVE sera égal à 0
* (puisque N est égal à 7 et que la recherche commence à partir du 7ème poste)