Spiegazione di FILLER in un programma COBOL
Nel linguaggio COBOL, definite tutte le variabili e campi dati in una sezione chiamata Data Division. Qui create record per file su disco, layout di stampa, contatori e working storage per calcoli. Definite la maggior parte dei campi dando loro nomi univoci, ma la parola chiave FILLER permette di riservare spazio memoria senza bisogno di un nome.
FILLER
FILLER è una parola riservata, non potete usarla per nominare campi o record se non per definire singoli elementi di memoria. Usate FILLER subito dopo un numero di livello e prima di una clausola PICTURE che definisce dimensione e tipo del campo. COBOL limita l'uso di FILLER alla Data Division; non si applica a Identification, Environment o Procedure Division.
Layout record
Uno degli usi più comuni di FILLER è per definizioni record dati. Se usate un file dati con record da 150 caratteri e non avete bisogno di etichettare ogni campo, potete definire i caratteri non necessari come FILLER, come nel codice seguente:
01 customer-record.
05 FILLER PIC X(10).
05 customer-name PIC X(30).
05 customer-address PIC X(30).
05 customer-city PIC X(30).
05 FILLER PIC X(50).
Così leggete un record da 150 caratteri e identificate i campi voluti – nome, indirizzo, città – ignorando il resto.
Estrazione sottostringa
Potete usare FILLER per assistere l'estrazione di sottostringhe da una stringa maggiore. Esempio: per estrarre i primi cinque digit di un CAP, impostate nella Working-Storage Section:
01 whole-zip-code.
05 primary-zip PIC X(5).
05 FILLER PIC X(5).
Nella Procedure Division, spostate un CAP+4 in whole-zip-code, poi primary-zip in un campo destinazione. Così scartate tutto dopo i primi cinque digit.
FILLER e VALUE
In un record, un campo FILLER riserva spazio e accetta qualsiasi dato vi spostiate. Potete anche definire un campo FILLER con un VALUE. I programmatori usano spesso questa tecnica per intestazioni report, esempio:
01 print-line.
05 FILLER PIC X(10) VALUE SPACES.
05 FILLER PIC X(15) VALUE "YEAR END REPORT".
05 FILLER PIC X(20) VALUE SPACES.
05 FILLER PIC X(5) VALUE "PAGE ".
05 page-number PIC ZZZ9.
Notate che titoli e spaziatura dell'intestazione report sono tutti FILLER, tranne un campo nominato per il numero pagina.