FILLER

Le mot-clé FILLER

En COBOL, le mot-clé FILLER permet de réserver de l’espace dans une structure de données sans lui donner de nom utilisable dans le programme.

C’est très utile quand on reçoit ou envoie des données structurées (fichiers, appels de fonctions, zones mémoire) dont on n’a pas besoin de toutes les parties. On « saute » simplement les octets inutiles.

Exemple concret : ignorer une partie de FUNCTION CURRENT-DATE

IDENTIFICATION DIVISION.
PROGRAM-ID. UTILISATION-FILLER.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  D.
    03  ANNEE       PIC 9(4).
    03  MOIS        PIC 9(2).
    03  JOUR        PIC 9(2).
    03  FILLER      PIC X(13).   *> pour ignorer heure + offset

01  DATE-FORMATTEE  PIC X(10) VALUE SPACES.

PROCEDURE DIVISION.
    MOVE FUNCTION CURRENT-DATE TO D

    STRING ANNEE "-" MOIS "-" JOUR
           DELIMITED BY SIZE
           INTO DATE-FORMATTEE
    END-STRING

    DISPLAY "Date du jour (AAAA-MM-JJ) : " DATE-FORMATTEE

    STOP RUN.
        
Télécharger le code

Sortie attendue (exemple)

Date du jour (AAAA-MM-JJ) : 2026-01-28

Explication détaillée : pourquoi utiliser FILLER ici ?

Pourquoi ne pas déclarer seulement PIC X(8) ?
Parce que FUNCTION CURRENT-DATE renvoie 21 caractères. Si on déclare une variable de 8 caractères seulement, le MOVE tronquerait la donnée et pourrait causer des erreurs ou des comportements imprévisibles selon le compilateur. Le FILLER permet de recevoir la donnée complète sans risque.

Règle d’or : Utilisez FILLER dès que vous avez une zone de données entrante ou sortante dont vous n’utilisez qu’une partie. C’est propre, sûr et très courant en COBOL (fichiers séquentiels, VSAM, COPY de COPYBOOK, appels CICS, etc.).