Explication de FILLER dans un programme COBOL
En COBOL, vous définissez toutes les variables et zones de données dans la section « Division des données » (Data Division). Vous y configurez les enregistrements pour fichiers disque, mises en page d'impression, compteurs et zones de travail pour calculs. La plupart des zones reçoivent des noms uniques, mais le mot-clé FILLER permet de réserver de l'espace mémoire sans avoir à le nommer.
FILLER
FILLER est un mot réservé : vous ne pouvez l'utiliser que pour définir des éléments mémoire individuels. Il s'utilise immédiatement après un numéro de niveau et avant une clause PICTURE définissant la taille et le type de la zone. COBOL restreint FILLER à la Division des données ; il ne s'applique pas aux divisions Identification, Environnement ou Procédure.
Dispositions d'enregistrements
Un usage courant de FILLER est la définition d'enregistrements de données. Si vous utilisez un fichier avec des enregistrements de 150 caractères et n'avez pas besoin d'étiqueter chaque champ, vous pouvez définir les caractères inutiles comme FILLER :
01 client-enregistrement.
05 FILLER PIC X(10).
05 nom-client PIC X(30).
05 adresse-client PIC X(30).
05 ville-client PIC X(30).
05 FILLER PIC X(50).
Cela permet de lire un enregistrement de 150 caractères et d'identifier les champs voulus (nom, adresse, ville) en ignorant le reste.
Extraction de sous-chaîne
FILLER peut aider à extraire une sous-chaîne d'une chaîne plus grande. Pour extraire les 5 premiers chiffres d'un code postal (ZIP+4), définissez dans la section Working-Storage :
01 code-postal-complet.
05 code-principal PIC X(5).
05 FILLER PIC X(5).
Dans la Division Procédure, déplacez le code ZIP+4 vers code-postal-complet, puis déplacez code-principal vers un champ destination. Ainsi, tout après les 5 premiers chiffres est ignoré.
FILLER et VALUE
Dans un enregistrement, une zone FILLER réserve de l'espace et accepte toute donnée qu'on y déplace. On peut aussi lui donner une valeur initiale. Les programmeurs utilisent cela pour les en-têtes de rapports :
01 ligne-impression.
05 FILLER PIC X(10) VALUE SPACES.
05 FILLER PIC X(15) VALUE "RAPPORT FIN D'ANNEE".
05 FILLER PIC X(20) VALUE SPACES.
05 FILLER PIC X(5) VALUE "PAGE ".
05 numero-page PIC ZZZ9.
Notez que les titres et espacements de l'en-tête sont tous faits avec FILLER, sauf le champ nommé pour le numéro de page.
