Extraire la fin d'une chaîne

Extraire la fin d'une chaîne – Suffixe avec REFERENCE MODIFICATION

En COBOL, pour extraire les derniers caractères d'une chaîne (le suffixe), on utilise toujours la notation de référence de modification (position:longueur).

Le truc est de calculer la position de départ correctement : LONGUEUR - N + 1, où N est le nombre de caractères que l’on veut prendre. Cette méthode respecte les caractères multi-octets (accents, emoji, etc.) quand le programme est compilé en mode UTF-8.

Exemple de code

IDENTIFICATION DIVISION.
PROGRAM-ID. SUFFIXE-CHAINE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  CHAINE1         PIC X(44) VALUE "Bienvenue dans l'apprentissage COBOL moderne".
01  CHAINE2         PIC X(5)  VALUE SPACES.
01  LONGUEUR        PIC 9(3).
01  POSITION-DEBUT  PIC 9(3).

PROCEDURE DIVISION.
    MOVE FUNCTION LENGTH(CHAINE1) TO LONGUEUR
    COMPUTE POSITION-DEBUT = LONGUEUR - 5 + 1

    MOVE CHAINE1(POSITION-DEBUT:5) TO CHAINE2

    DISPLAY "Chaîne originale :"
    DISPLAY CHAINE1
    DISPLAY " "
    DISPLAY "5 derniers caractères :"
    DISPLAY CHAINE2

    STOP RUN.
        
Télécharger le code

Explication détaillée pour débutants

Résultat attendu

Chaîne originale : Bienvenue dans l'apprentissage COBOL moderne 5 derniers caractères : derne

Points clés à retenir :