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

  1. Définir les Chaînes: Assurez-vous d’avoir défini votre FIRST-NAME, LAST-NAME, et FULL-NAME dans votre section WORKING-STORAGE comme illustré ci-dessus.

  2. 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!