DELIMITED |
Délimiteur |
|---|---|
| Cobol | |
Syntaxe
|
STRING identifier1 DELIMITED [BY] (identifier2|SIZE) INTO identifier3 [[WITH] POINTER identifier4] [[ON] OVERFLOW statementlist] [NOT [ON] OVERFLOW statementlist] [END-STRING] |
|
UNSTRING identifier [DELIMITED [BY][ALL] identifier OR [ALL] identifier] INTO identifier [DELIMITER [IN] identifier][COUNT [IN] identifier] [[WITH] POINTER identifier][TALLYING [IN] identifier] [[ON] OVERFLOW statementlist][NOT [ON] OVERFLOW statementlist] [END-UNSTRING] |
Paramètres
| Nom | Description |
|---|---|
| BY | Ce paramètre permet d'indiquer explicitement le délimiteur dans la syntaxe de l'instruction STRING. Cela permet de spécifier un caractère ou une chaîne de caractères qui marquera la fin de l'élément à traiter, assurant ainsi que la chaîne est divisée de manière appropriée. Par exemple, cela pourrait être un espace, une virgule, ou une autre séquence de caractères. |
| identifier2 | Ce paramètre permet d'indiquer une variable ou à un champ dans lequel la chaîne délimitée sera recherchée. Le SIZE est une option alternative qui peut être utilisée pour délimiter une chaîne en fonction de sa taille maximale, permettant ainsi de définir la longueur maximale des données à inclure dans l'opération. SIZE est souvent utilisé pour éviter le dépassement de la capacité de la variable cible. |
| identifier3 | Ce paramètre permet d'indiquer le champ ou la variable identifier3 dans lequel les données extraites ou manipulées seront placées. Dans le contexte de l'instruction STRING, cela détermine où les données concaténées seront stockées. Dans le cadre de l'instruction UNSTRING, il indique où les segments de la chaîne délimitée doivent être insérés. |
| identifier4 | Ce paramètre permet d'indiquer un pointeur suivant l'endroit où l'extraction ou la concaténation se fait. Dans le contexte de STRING, ce pointeur détermine la position dans la chaîne résultante où les nouveaux éléments seront insérés. Dans UNSTRING, il aide à déterminer l'emplacement à partir duquel le prochain délimiteur ou segment sera extrait. |
| ON OVERFLOW statementlist | Ce paramètre permet de définir une gestion des erreurs si le nombre de caractères dépasse la capacité de la variable ou du champ cible. statementlist fait référence aux instructions à exécuter si un dépassement de capacité est détecté, ce qui est utile pour éviter des erreurs et garantir la robustesse du programme. Cela permet de prendre des mesures comme rediriger vers une gestion d'erreur ou ajuster les données. |
| NOT [ON] OVERFLOW statementlist | Ce paramètre permet d'indiquer ce qu'il faut faire si aucune erreur de dépassement ne se produit. Cela permet de définir une logique alternative pour traiter les cas où les données sont correctement traitées sans provoquer de dépassement de capacité. |
| END-STRING / END-UNSTRING | Ces paramètres permettent de marquer respectivement la fin des instructions STRING et UNSTRING. Ils sont nécessaires pour signaler au compilateur COBOL que l'opération de manipulation de chaînes est terminée. Ces instructions sont utilisées pour délimiter les blocs de traitement des chaînes et assurer que la syntaxe du programme est correcte et complète. |
Description
Cette instruction permet d'indiquer la fin de l'instruction UNSTRING.
Remarques
- L'utilisation du mot-clef DELIMITED permet de gérer finement le découpage de chaînes de caractères en COBOL, notamment dans les instructions STRING et UNSTRING. Cela est particulièrement utile lorsque l'on travaille avec des données formatées ou issues d'un flux texte, où des séparateurs (comme des virgules ou espaces) structurent l'information.
- Dans l'instruction STRING, la clause DELIMITED BY permet de concaténer plusieurs morceaux de texte jusqu'à rencontrer un certain caractère ou une certaine chaîne définie comme délimiteur. Cette méthode offre un excellent contrôle sur la longueur des chaînes concaténées, et permet d'éviter d'ajouter des données indésirables ou excessives.
- La clause DELIMITED BY SIZE offre une alternative utile lorsqu'aucun délimiteur n'est disponible dans les données. Elle permet de couper la chaîne en fonction de sa longueur, ce qui est idéal pour manipuler des chaînes de taille fixe ou pour s'assurer qu'on n'insère pas plus de caractères que la cible ne peut en accueillir.
- Avec l'instruction UNSTRING, l'utilisation du mot-clé DELIMITED BY permet de découper une chaîne d'entrée en plusieurs sous-chaînes, en utilisant un ou plusieurs caractères séparateurs. Cela est couramment utilisé pour traiter des chaînes de texte délimitées (comme les fichiers CSV), où chaque segment représente une information distincte.
- L'option ALL dans DELIMITED BY ALL identifier permet de traiter toutes les occurrences du délimiteur d'un seul coup, ce qui est pratique lorsqu'on veut ignorer des répétitions consécutives d'un même caractère de séparation. Cela rend l'opération plus propre et évite d'avoir à filtrer manuellement des sous-chaînes vides après traitement.
- L'intégration des clauses ON OVERFLOW et NOT ON OVERFLOW dans ces instructions renforce la robustesse des programmes COBOL. Elles permettent de gérer proprement les erreurs potentielles, comme le dépassement de capacité d'un champ, en déclenchant un traitement alternatif ou en signalant un problème à l'utilisateur.
- L'utilisation du paramètre WITH POINTER améliore la précision des opérations de chaîne, en permettant de suivre exactement la position courante de lecture ou d'écriture dans la chaîne cible. Cela facilite la manipulation progressive ou conditionnelle de chaînes complexes, tout en conservant une maîtrise totale sur le positionnement.
- Les mots-clefs END-STRING et END-UNSTRING apportent de la clarté et une délimitation explicite des blocs d'instruction, surtout dans des programmes COBOL modernes ou complexes. Ils aident le compilateur à identifier correctement les limites des instructions, réduisant ainsi les erreurs de syntaxe et rendant le code plus lisible.
Dernière mise à jour : Jeudi, le 28 juillet 2011