> Tech > Les BIF se lancent dans la recherche

Les BIF se lancent dans la recherche

Tech - Par iTPro - Publié le 24 juin 2010
email

Il y a aussi de nouvelles BIF pour faire des recherches dans des matrices, des tables, et des chaînes. Elles remplacent les codes opération LookUp (Look Up a Table or Array Element), Check (Check Characters) et CheckR (Check Reverse). La fonction fournie par le code opération LookUp est divisée en

Les BIF se lancent dans la recherche

deux familles
de BIF: %LookUpxx
(Look Up an Array Element) et
%TLookUpxx (Look Up a Table
Element). Les valeurs suivantes sont
correctes pour xx :

• Blank (égal à ) : recherche un élément
correspondant exactement à 
l’argument de recherche

• LT (inférieur à ) : recherche l’élément
qui est le plus proche mais inférieur
à  l’argument de recherche

• LE (inférieur à  ou égal à ) : recherche
un élément correspondant exactement
à  l’argument de recherche ou
l’élément le plus proche mais inférieur
à  l’argument de recherche

• GT (supérieur à ) : recherche l’élément
qui est le plus proche mais supérieur
à  l’argument de recherche

• GE (supérieur à  ou égal à ) : recherche
un élément correspondant
exactement à  l’argument de recherche
ou l’élément le plus proche
mais supérieur à  l’argument de
recherche

On voit qu’il y a cinq BIF pour des
fonctions de matrice et cinq pour des
fonctions de table.
La famille %LookUpxx de BIF
accepte quatre paramètres. Les deux
premiers, l’argument de recherche et
la matrice à  explorer, sont obligatoires.
On peut aussi, en option, indiquer les
deux autres paramètres. Le troisième
permet d’indiquer l’index sur lequel
commence la recherche, et le quatrième
permet d’indiquer le nombre
d’éléments soumis à  la recherche. Par
défaut, la recherche porte sur toute la
matrice. Ces BIF renvoient l’index de
matrice de l’élément trouvé par l’opération,
ou zéro quand aucun élément
ne correspond à  la condition spécifiée.
Les BIF %TLookUp acceptent trois
paramètres. Les deux premiers, l’argument
de recherche et la table à  explorer,
sont obligatoires. Le troisième paramètre,
en option, permet de définir
une table alternée dont l’élément courant
sera défini d’après les règles suivantes.
Quand une opération
%TLookUpxx répond à  la condition
spécifiée, la BIF renvoie *On et définit
l’élément de table en cours pour la
table de recherche d’après l’élément
qui a satisfait à  la condition. La BIF définit
également l’élément de table courant
pour la table alternée, si une
est définie, avec le même élément.
Quand aucun élément ne satisfait
à  la condition que l’opération
%TLookUp spécifie, la BIF renvoie
*Off.

Les BIF %LookUpxx et
%TLookUpxx diffèrent de deux manières
par rapport au code opération
LookUp qu’elles remplacent : les BIF
ne définissent pas les indicateurs ou les
valeurs résultant renvoyées par les BIF
%Equal et %Found.
La figure 3 montre plusieurs
exemples de la famille des BIF
%LookUpxx et %TLookUpxx. Le code
en A utilise %LookUp pour rechercher
dans une matrice entière (SomeAry)
une correspondance exacte avec la valeur
contenue dans l’argument de recherche
SrchArg. Souvenez-vous
qu’une valeur non zéro pour l’index
renvoyé indique qu’une correspondance
a été trouvée pour le critère spécifié.
Modifions quelque peu cet
exemple. Avec %LookUp, le troisième
paramètre permet d’indiquer l’élément
où doit commencer la recherche.
L’exemple en B commence la recherche
avec le quatrième élément.
On peut même préciser le nombre
d’éléments à  rechercher quand on utilise
%LookUp. Le code en C montre un
exemple qui n’effectue la recherche
que dans les éléments 4 à  8 (en commençant
avec l’élément 4 pour cinq
éléments). Le code opération LookUp
n’a pas de fonction équivalente.
L’exemple en D est identique à  celui
de A, à  cela près que le critère de recherche
est « supérieur ou égal à  ». En
E, la BIF %TLookUp explore la table
TabEmp en utilisant le critère « inférieur
à  ». Un exemple encore plus
concis de cette instruction apparaît
en F.

Après avoir vu des opérations qui
recherchent l’existence d’un élément,
intéressons-nous à  deux opérateurs
qui, en essence, recherchent la nonexistence
d’un élément. Les BIF
%Check (Check Characters) et
%CheckR (Check Reverse) vérifient
que les caractères présents dans une
chaîne de base figurent parmi les caractères
indiqués dans une chaîne de
comparaison. Les deux BIF ont comme
paramètres :

• Chaîne de comparaison – un paramètre
obligatoire qui peut être de
longueur fixe ou variable, de type caractère,
graphique, ou Universal
Multiple-Octet Coded Character Set
(UCS 2).

• Chaîne de base – un paramètre obligatoire
qui doit être de même type
que le premier paramètre. La chaîne
de base indique les caractères à  vérifier.

• Position de départ – un paramètre
facultatif qui est une valeur numérique
avec virgule non flottante avec
zéro décimale. Il indique la position
de départ dans la chaîne de base
(par défaut, 1).

%Check commence à  la position
de départ dans la chaîne de base et vérifie
les caractères de gauche à  droite,
jusqu’à  ce qu’il trouve un caractère qui
n’est pas dans la chaîne de comparaison.
%CheckR fonctionne de manière
identique mais vérifie les caractères de
droite à  gauche. Les BIF renvoient la
position du caractère
dans la chaîne de base,
ce qui entraîne la fin de
l’opération. Si tous les
caractères dans la chaîne
de base se trouvent dans
la chaîne de comparaison,
les BIF renvoient
zéro (0).
La figure 4 montre
des exemples d’utilisation
de ces BIF. Le code
en A affiche une utilisation
courante pour
%Check. Cette section
de code trouve le premier
caractère non blanc
dans la chaîne
SomeString. En B, on a la
même vérification mais
le processus commence
avec le onzième caractère
de SomeString. En
C, %Check trouve le premier
caractère dans
SomeString qui n’est pas
un chiffre (digit). Les exemples en D et
E utilisent %CheckR pour effectuer le
processus de droite à  gauche, en commençant
à  la fin (ou à  la position de
départ spécifiée) de la chaîne.

Téléchargez gratuitement cette ressource

Comment aborder la sauvegarde moderne ?

Comment aborder la sauvegarde moderne ?

Au-delà de l’effet de « corvée », souvent soulignée par les administrateurs, la sauvegarde moderne est un nouveau concept qui a le potentiel de transformer toute direction des systèmes d’information, quelle que soit sa taille, et d’apporter des réponses fonctionnelles nouvelles pour rendre le service informatique plus efficace. Découvrez comment aborder la sauvegarde moderne

Tech - Par iTPro - Publié le 24 juin 2010