A FILE SECTION
faz parte da DATA DIVISION
e é responsável por descrever todos os arquivos de entrada e saída que o programa COBOL vai manipular. Ela define a estrutura física, o formato dos registros e os campos de cada arquivo.
🧾 Função da FILE SECTION
-
Define arquivos físicos usados para leitura e gravação
-
Especifica o formato dos registros (fixo, variável, etc.)
-
Estabelece nomenclatura, estrutura e tamanho dos dados
-
Só pode ser usada se o arquivo estiver aberto (
OPEN
)
🔖 Estrutura geral
A FILE SECTION
contém uma ou mais entradas FD
(File Description), cada uma representando um arquivo. Para arquivos de ordenação/mesclagem, utiliza-se SD
(Sort Description).
📌 Exemplo de estrutura básica:
DATA DIVISION.
FILE SECTION.
FD CADCLIEN
RECORDING MODE IS F
LABEL RECORD IS STANDARD
BLOCK CONTAINS 0 RECORDS.
01 REG-CADCLIEN PIC X(100).
🗂 Entradas e cláusulas comuns
✅ FD
– File Description
Declara um arquivo de entrada ou saída.
FD NOME-DO-ARQUIVO
RECORDING MODE IS F
LABEL RECORD IS STANDARD
BLOCK CONTAINS 0 RECORDS.
✅ RECORDING MODE
Define o formato de gravação do registro:
Modo | Significado |
---|---|
F |
Fixo |
FB |
Fixo blocado |
V |
Variável |
VB |
Variável blocado |
VS |
Variável com extensão |
VBS |
Variável blocado com extensão |
U |
Indefinido |
Se omitido, o compilador assume com base no DD
ou catálogo.
✅ LABEL RECORD
Define como o COBOL trata os rótulos do arquivo:
Valor | Significado |
---|---|
STANDARD |
Utiliza rótulo padrão |
OMITTED |
Rótulo omitido (ex: impressoras) |
✅ BLOCK CONTAINS
Define o tamanho do bloco físico (em registros):
BLOCK CONTAINS 10 RECORDS.
0
= o compilador assume do sistema
Se RECORDS
não for especificado, assume CHARACTERS
✅ RECORD CONTAINS
Define o tamanho do registro lógico em caracteres:
RECORD CONTAINS 50 CHARACTERS.
Se usado, o compilador faz verificação com base na soma dos campos do registro.
✅ DATA RECORD
Serve como documentação. Nomeia o(s) registro(s) principal(is) daquele arquivo:
DATA RECORD IS RECIBO.
DATA RECORD ARE RECIBO, NOTA.
🧪 Exemplo completo
DATA DIVISION.
FILE SECTION.
FD FITA
RECORDING MODE IS F
LABEL RECORD IS STANDARD
RECORD CONTAINS 50 CHARACTERS
BLOCK CONTAINS 10 RECORDS
DATA RECORD IS RECIBO.
01 RECIBO.
03 PRODUTO PIC X(040).
03 PRECO PIC 9(003)V9(002).
03 FILLER PIC X(005).
✅ Dicas importantes
-
Itens definidos na
FILE SECTION
não podem ser acessados se o arquivo não estiver aberto. -
Um arquivo pode conter várias descrições de registro (descrições alternativas).
-
Você pode usar cláusula
TYPEDEF
para reaproveitar estruturas em outras seções (comoWORKING-STORAGE
ouLINKAGE
).
✅ Conclusão
A FILE SECTION
é onde você define os dados que seu programa vai ler ou gravar, sua estrutura, tamanho e formato. Um domínio sólido dessa seção é essencial para criar sistemas COBOL robustos e eficientes, especialmente em ambientes batch e mainframe.