FILE SECTION:
- Define todos os arquivos de entrada e saída;
- Cada arquivo de ordenação-mesclagem;
- Representa o nível mais alto de organização na seção Arquivo. Fornece informações sobre a estrutura física e identificação de um arquivo, e dá o registro nome (s) associado com esse arquivo;
- Um conjunto de entradas de descrição de dados que descrevem os registros particulares contidos em um arquivo específico ou descrevem um nome de tipo (usando a cláusula TYPEDEF);
- Mais de uma entrada de descrição de registro pode ser especificada;
- Cada entrada que não descreve um nome de tipo é uma descrição alternativa da mesma área de armazenamento de registro;
- As áreas de dados descritas na FILE-SECTION não estão disponíveis para processamento, a menos que o arquivo que contém a área de dados esteja aberto;
- Os nomes de tipo definidos na FILE-SECTION podem ser usados na WORKING-STORAGE SECTION ou na LINKAGE-SECTION para definir outros itens de dados;
- Os itens de grupo (incluindo tabelas) estão limitados a um comprimento de 16 711 568 bytes;
- O valor inicial de um item de dados na FILE-SECTION é indefinido;
- Nota: Em um programa COBOL, o File Description (FD) Entry (ou Sort Description (SD) Entry para classificar/mesclar arquivos) representa o mais alto nível de organização na FILE-SECTION.
Exemplo:
*
******************************************************************
DATA DIVISION.
******************************************************************
FILE SECTION.
******************************************************************
* INPUT..: CADCLIEN – CAD DE CLIENTE - LRECL.: 100 BYTES *
******************************************************************
*
FD CADCLIE
RECORDING MODE IS F
LABEL RECORD IS STANDARD
BLOCK CONTAINS 0 RECORDS.
01 REG-CADCLIE PIC X(100).
*
******************************************************************
* OUTPUT.: CADFORN – CAD DE FORNECEDOR - LRECL.: 100 BYTES *
******************************************************************
*
FD CADFORN
RECORDING MODE IS F
LABEL RECORD IS STANDARD
BLOCK CONTAINS 0 RECORDS.
01 REG-CADFORN PIC X(100).
*
******************************************************************
WORKING-STORAGE SECTION.
******************************************************************
*
FILE DESCRIPTION (FD): É a descrição do arquivo.
- (V-Formato do Arquivo “Variável”)
- (F-Formato do Arquivo “Fixo”)
*
******************************************************************
FD CADPATU
RECORDING MODE IS F
LABEL RECORD IS STANDARD (Formato do Label)
BLOCK CONTAINS 0 RECORDS. (Quantidade de Blocos)
******************************************************************
*
RECORDING MODE: Designa o formato do registro.
(RECORDING MODE IS X)
- FIXO (F)
- FIXO BLOCADO (FB)
- VARIÁVEL (V)
- VARIÁVEL BLOCADO (VB)
- VARIÁVEL SPANNED (VS)
- VARIÁVEL BLOCADO SPANNED (VBS)
- UNDEFINED (U)
Nota: Se não for colocada a cláusula “RECORDING MODE”, o compilador determinará pelo cartão “DD” ou catálogo.
LABEL RECORD: Especifica o formato do label.
(LABEL RECORD IS XXXXXXXX)
- STANDARD -> padrão
- OMITTED -> omitido (impressora, leitora de cartões perfuradoras não possuem “LABELS”)
Nota: Quando omitido assume “LABEL STANDARD”.
BLOCK CONTAINS: Especifica o tamanho do registro físico.
(BLOCK CONTAINS 9999 RECORDS)
Notas: Se for colocado zero (0), assume informações do cartão “DD”; Se não for colocado “RECORDS”, assume “CHARACTERS”.
RECORD CONTAINS: Especifica o tamanho do registro lógico.
(RECORD CONTAINS 9999 CHARACTERS)
Nota: Se esta cláusula for colocada, é feita uma conferência pelo compilador, somando a quantidade de bytes da definição do registro.
DATA RECORD:
(DATA RECORD IS RECIBO)
(DATA RECORD ARE RECIBO, NOTA, ...)
Nota: Serve apenas como documentação, identificando os registros do arquivo pelo nome.
Exemplo:
*******************************************************************
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).
******************************************************************