Données alphabétiques

La clause PIC A – Données alphabétiques

La clause PICTURE A (ou PIC A) définit une zone qui ne peut contenir que des caractères alphabétiques (lettres A–Z, a–z, et espaces).

Elle est très utilisée pour :

Règles essentielles de PIC A

Exemple 1 – Nom et prénom simples

01  NOM-COMPLET.
    05  NOM         PIC A(20).
    05  PRENOM      PIC A(15).
            

Valeurs valides : "DUPONT ", "Marie-Anne "
Valeurs invalides : "Dupont123", "M. Dupont" (le point est interdit)

Exemple 2 – Libellé alphabétique avec justification à droite

01  LIBELLE-ARTICLE     PIC A(30) JUSTIFIED RIGHT.
            

Si on fait MOVE "Stylo" TO LIBELLE-ARTICLE :
→ Le mot est aligné à droite : 25 espaces + "Stylo"

Exemple 3 – Code pays alphabétique (norme ISO 3166-1 alpha-2)

01  CODE-PAYS           PIC A(2) VALUE "FR".
            

Utilisé pour stocker "FR", "BE", "DE", "ES", etc.
Tentative de MOVE "F1" TO CODE-PAYS → erreur à l’exécution (chiffre interdit)

Exemple 4 – Indicateur alphabétique (oui/non, statut)

01  INDICATEUR-ACTIF    PIC A VALUE "N".
            

Valeurs typiques : "O" / "N", "Y" / "N", "A" / "I" (actif/inactif)

Exemple 5 – Comparaison avec PIC X

01  TEXTE-X             PIC X(10) VALUE "Bonjour12".
01  TEXTE-A             PIC A(10) VALUE "Bonjour  ".
            

PIC X accepte tout (chiffres, symboles…)
PIC A refuse "Bonjour12" → erreur si on tente de le déplacer dedans

Attention aux accents et caractères nationaux
Dans les compilateurs modernes (GnuCOBOL, Micro Focus avec UTF-8), PIC A accepte souvent les lettres accentuées (é, è, ç, ñ…).
Dans les anciens systèmes EBCDIC stricts, seuls A–Z et espaces sont autorisés → les accents sont considérés comme invalides.

Quand utiliser PIC A vs PIC X ?

En pratique, depuis les années 2000, PIC X est beaucoup plus fréquent que PIC A, mais cette dernière reste utile pour la documentation et les contrôles de cohérence.