INSPECT |
Inspecte |
|---|---|
| Cobol | |
Syntaxe
|
INSPECT identifier1 TALLYING identifier2 FOR (ALL identifier|LEADING identifier3|CHARACTERS) [(BEFORE|AFTER) INITIAL identifier4] |
|
INSPECT identifier1 REPLACING (ALL identifier5 BY identifier6|LEADING|FIRST|CHARACTERS) [(BEFORE|AFTER) INITIAL identifier7] |
|
INSPECT identifier1 TALLYING identifier2 FOR (ALL identifier|LEADING identifier3|CHARACTERS) [(BEFORE|AFTER) INITIAL identifier4] REPLACING (ALL identifier5 BY identifier6|LEADING|FIRST|CHARACTERS) [(BEFORE|AFTER) INITIAL identifier7] |
Paramètres
| Nom | Description |
|---|---|
| identifier1 | Ce paramètre permet d'indiquer le champ à analyser ou à modifier. Il s'agit d'une variable alphanumérique dont le contenu va être inspecté pour y compter ou remplacer certains caractères. Toutes les actions de TALLYING et de REPLACING s'appliquent à cette zone mémoire. |
| TALLYING identifier2 | Ce paramètre permet de compter les occurrences d'un caractère ou groupe de caractères dans identifier1. Le résultat du comptage est placé dans identifier2, une variable numérique. Cela est utile pour des statistiques ou pour vérifier la composition d'une chaîne. |
| ALL identifier | Ce paramètre permet de compter toutes les occurrences de ce caractère ou groupe de caractères dans identifier1. |
| LEADING identifier3 | Ce paramètre permet de ne pas compter les caractères identiques consécutifs en début de champ. |
| CHARACTERS | Ce paramètre permet de compter chaque caractère, utile pour connaître la longueur réelle ou analyser la composition d'une chaîne. |
| (BEFORE | AFTER) INITIAL identifier4 | Ce paramètre permet de limiter l'analyse à la portion de la chaîne avant ou après la première occurrence d'un certain caractère (identifier4). Il est très pratique pour traiter uniquement une partie de la donnée, comme dans des formats structurés ou délimités. |
| ALL identifier5 BY identifier6 | Ce paramètre permet de remplacer toutes les occurrences du motif identifier5 par identifier6. |
| LEADING | Ce paramètre permet de ne pas remplacer que les caractères en début de champ si ce sont ceux recherchés. |
| FIRST | Ce paramètre permet de remplacer la première occurrence uniquement. |
| CHARACTERS | Ce paramètre permet de remplacer caractère par caractère, utile pour faire des transformations massives. |
| (BEFORE|AFTER) INITIAL identifier7 | Ce paramètre permet de restreindre la zone sur laquelle le remplacement s'applique. Cela permet par exemple de modifier seulement la fin d'une chaîne sans toucher au début, ou l'inverse. |
Description
Cette instruction permet de fournir les habilités de compte, de remplacement, de compte et de remplacement dans les occurrences de simple caractères ou de groupe de caractères dans un item de données.
Remarques
- INSPECT est une instruction très puissante pour manipuler des chaînes de caractères sans boucle explicite : Elle permet à la fois de compter (TALLYING) et de remplacer (REPLACING) des caractères ou sous-chaînes dans une variable alphanumérique. Cela réduit considérablement la complexité du code dans des traitements de texte ou de données structurées.
- L'utilisation de TALLYING permet de compter des occurrences précises, ce qui est utile pour des contrôles ou des statistiques : Par exemple, on peut compter combien de fois la lettre "A" apparaît dans une chaîne. Le résultat est stocké dans un compteur, ce qui évite de devoir écrire une boucle de parcours manuelle.
- Avec LEADING, INSPECT peut détecter ou remplacer uniquement les caractères au début d'une chaîne : Cela permet de nettoyer des champs mal formatés ou de valider la présence de préfixes spécifiques. C'est souvent utilisé avec des chaînes contenant des zéros en tête, des blancs, ou des indicateurs spécifiques.
- La clause REPLACING peut s'utiliser seule ou en combinaison avec TALLYING, offrant un traitement en une seule passe : Il est donc possible de compter combien de fois une valeur apparaît et de la remplacer simultanément, ce qui optimise les performances et la lisibilité du code.
- La clause BEFORE|AFTER INITIAL ajoute une grande finesse dans le traitement : Elle permet de limiter le comptage ou le remplacement à une portion de la chaîne, soit avant soit après un certain caractère ou groupe de caractères trouvé en premier. C'est très utile dans des formats CSV, XML ou autres structures délimitées.
- Avec CHARACTERS, INSPECT peut travailler de manière générique sur la totalité d'un champ, caractère par caractère : Cela permet par exemple de vérifier s'il contient uniquement certains types de caractères, ou d'appliquer un remplacement global. C'est une option pratique quand on ne veut pas préciser de motif particulier.
- L'option FIRST dans REPLACING est particulièrement utile pour effectuer des remplacements ciblés : Contrairement à ALL, remplaçant toutes les occurrences, FIRST agit seulement sur la première, permettant de garder les suivantes intactes, ce qui est important pour certaines logiques métier.
- INSPECT est une des rares instructions COBOL qui permet d'agir en profondeur sur des champs alphanumériques sans changer leur structure : Elle est incontournable lorsqu'il s'agit de travailler avec des données textuelles dans des applications de gestion, tout en restant dans le paradigme procédural et déclaratif du COBOL.
Dernière mise à jour : Jeudi, le 28 juillet 2011