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 :
- Les noms, prénoms, libellés
- Les champs texte « purs » (pas de chiffres ni de caractères spéciaux autorisés par le compilateur)
- Les zones qui doivent rester alphabétiques lors de contrôles de validité
Règles essentielles de PIC A
- Accepte uniquement : lettres (A–Z, a–z selon le collating sequence), espaces
- Les chiffres (0–9), signes, points, virgules, etc. → rejetés à la compilation ou à l’exécution (selon le compilateur)
- Très souvent combinée avec
JUSTIFIED RIGHTouBLANK WHEN ZERO(mais rarement avec cette dernière)
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
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 ?
- Utilisez
PIC Aquand vous voulez forcer un contrôle alphabétique strict (noms, libellés, codes pays…) - Utilisez
PIC Xdès qu’il peut y avoir des chiffres, signes, accents non gérés, ou quand vous ne voulez pas de rejet automatique
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.