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 (como WORKING-STORAGE ou LINKAGE).

✅ 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.