Conceitos
WRITE
A instrução WRITE é utilizada para gravar registros em um arquivo.
Formato:
WRITE nome-de-registro FROM variavel-1.
Considerações
O arquivo deverá ser aberto no modo OUTPUT.
Esta instrução transfere e grava no arquivo todos os dados existentes na variável declarada na FD.
O nome-de-registro utilizado na instrução é o nome que foi definido para o registro no nível 01 da FD.
O parâmetro FROM permite que o conteúdo de variavel-1 seja automáticamente transferido para nome-de-registro na FD antes da gravação. A variavel-1 não poderá ser a área definida na FD. O efeito é o mesmo que a combinação das instruções MOVE e WRITE.
Por exemplo, dadas as declarações;
DATA DIVISION.
FILE SECTION.
FD CADASTRO.
01 REGISTRO-CADASTRO PIC X(100).
WORKING-STORAGE SECTION.
01 REGISTRO-CAD-DETALHADO.
03 MATRICULA PIC 9(5).
03 NOME-FUNC PIC X(30).
03 ESPACOS PIC X(65).
PROCEDURE DIVISION.
OPEN OUTPUT CADASTRO.
LEITURA.
...
... outras instruções ...
...
GRAVACAO.
WRITE REGISTRO-CADASTRO FROM REGISTRO-CAD-DETALHADO.
GO TO LEITURA.
FINAL.
CLOSE CADASTRO.
STOP RUN.
a instrução WRITE grava em CADASTRO, registros cujo conteúdo está em REGISTRO-CAD-DETALHADO e é transferido para REGISTRO-CADASTRO antes da gravação.
REWRITE
A instrução REWRITE é utilizada para sobregravar um registro do arquivo. O registro a ser sobregravado deverá ser lido antes de ser sobregravado.
Formato:
REWRITE nome-de-registro FROM variavel-1.
Considerações
O arquivo deverá ser aberto no modo I-O.
Esta instrução transfere e grava no arquivo, na posição do registro lido, todos os dados existentes na variável declarada na FD. O conteúdo existente no arquivo será perdido.
O tamanho do registro a ser sobregravado não poderá ser modificado.
O nome-de-registro utilizado na instrução é o nome que foi definido para o registro no nível 01 da FD.
O parâmetro FROM permite que o conteúdo de variavel-1 seja automáticamente transferido para nome-de-registro na FD antes da gravação. A variavel-1 não poderá ser a área definida na FD. O efeito é o mesmo que a combinação das instruções MOVE e WRITE.
Por exemplo, dadas as declarações;
DATA DIVISION.
FILE SECTION.
FD CADASTRO.
01 REGISTRO-CADASTRO PIC X(100).
WORKING-STORAGE SECTION.
01 REGISTRO-CAD-DETALHADO.
03 MATRICULA PIC 9(5).
03 NOME-FUNC PIC X(30).
03 ESPACOS PIC X(65).
PROCEDURE DIVISION.
OPEN I-O CADASTRO.
LEITURA.
READ REGISTRO-CADASTRO INTO REGISTRO-CAD-DETALHADO AT END GO TO FINAL.
...
... outras instruções ...
...
REWRITE REGISTRO-CADASTRO FROM REGISTRO-CAD-DETALHADO
GO TO LEITURA.
FINAL.
CLOSE CADASTRO.
STOP RUN.
a instrução REWRITE sobregrava em CADASTRO, o registro recém lido através da instrução READ, cujo conteúdo está em REGISTRO-CAD-DETALHADO e é transferido para REGISTRO-CADASTRO antes da gravação.