Maîtriser la Concatenation de Chaînes en COBOL
Dans le monde de la programmation, travailler avec des chaînes est une tâche courante. En COBOL, on peut souvent faire face au défi de concaténer des chaînes dont les longueurs ne sont pas prédéterminées. Cet article vise à fournir une solution claire à la question de savoir comment concaténer efficacement deux chaînes de longueur inconnue en COBOL.
Le Problème
Imaginez que vous travaillez avec un programme qui gère le prénom et le nom d’un utilisateur. Votre section WORKING-STORAGE
définit des variables pour stocker ces noms, mais le défi se présente lorsque vous devez les concaténer en un nom complet sans conserver d’espaces inutiles. Par exemple, donné:
WORKING-STORAGE.
FIRST-NAME PIC X(15) VALUE SPACES.
LAST-NAME PIC X(15) VALUE SPACES.
FULL-NAME PIC X(31) VALUE SPACES.
En supposant que FIRST-NAME
est défini sur 'JOHN '
et LAST-NAME
sur 'DOE '
, vous cherchez à obtenir le résultat:
FULL-NAME = 'JOHN DOE '.
Cependant, une concaténation naïve pourrait vous amener à obtenir:
FULL-NAME = 'JOHN DOE '.
Ce n’est pas le résultat souhaité car il comprend des espaces supplémentaires entre les parties concaténées. Alors, comment résoudre ce problème?
La Solution
La solution à ce problème consiste à utiliser efficacement l’instruction STRING
de COBOL. Elle vous permet de concaténer des chaînes et de spécifier des délimiteurs pour éliminer les espaces indésirables. Voici les étapes pour concaténer correctement les deux chaînes.
Guide Étape par Étape
-
Définir les Chaînes: Assurez-vous d’avoir défini votre
FIRST-NAME
,LAST-NAME
, etFULL-NAME
dans votre sectionWORKING-STORAGE
comme illustré ci-dessus. -
Utiliser l’Instruction STRING: Vous pouvez utiliser l’instruction
STRING
pour concaténer les chaînes. Voici comment procéder:STRING FIRST-NAME DELIMITED BY " ", " ", LAST-NAME DELIMITED BY SIZE INTO FULL-NAME.
Analyse de l’Instruction STRING
-
FIRST-NAME DELIMITED BY " “: Cela indique à COBOL d’utiliser
FIRST-NAME
et d’arrêter la concaténation à la première espace rencontrée, coupant efficacement les espaces finaux. -
” “: Cela ajoute un espace unique entre le prénom et le nom de famille pour s’assurer qu’ils sont correctement séparés.
-
LAST-NAME DELIMITED BY SIZE: Cela spécifie que la longueur entière de
LAST-NAME
doit être incluse dans la concaténation, évitant ainsi des espaces finaux inutiles. -
INTO FULL-NAME: Cela dirige la chaîne concaténée résultante à être stockée dans
FULL-NAME
.
Conclusion
En suivant ces étapes, vous serez en mesure de concaténer efficacement des chaînes de longueurs inconnues en COBOL tout en garantissant une sortie propre et formatée. En utilisant l’instruction STRING
avec des délimiteurs appropriés, COBOL simplifie le processus de gestion des chaînes, en en faisant un outil puissant pour vos besoins en programmation.
Ainsi, la prochaine fois que vous serez confronté à un défi similaire avec la concaténation en COBOL, vous pourrez appliquer cette méthode avec confiance pour obtenir les résultats souhaités!