sábado, 17 de dezembro de 2016

Trabalhando com arquivos - Parte 2.3 - Código leitura/escrita no mesmo arquivo

Olá!

Para não produzir um post extenso, o assunto sobre arquivos está abordado em posts particionados conforme:
  1. Declarações básicas
  2. Código básico
    1. Código leitura arquivo
    2. Código escrita arquivo
    3. Código leitura/escrita no mesmo arquivo
  3. Código intermediário:
    1. Balance-Line conceito
    2. Balance-Line código
Neste post é abordado os comandos e uma lógica de processamento simples para realizar a leitura e gravação de dados em um arquivo. Lembrando, que na parte 1 desse assunto foi apresentado as declarações básicas que devem ser feitas para executar uma rotina COBOL com arquivos.

O fluxo de processamento consiste em quatro passos: abrir o arquivo em modo de leitura e escrita, ler os dados do arquivo, gravar os dados (sobrescrever as informações do registro) no arquivo, e por fim encerrar o uso do arquivo (fechar o arquivo).


    1 - Abrir o arquivo em modo de leitura e escrita

Quando a abertura de um arquivo é feita no modo de leitura e escrita, significa que as informações do arquivo podem ser manipuladas pelo código COBOL e depois atualizadas no arquivo, ou seja, os dados lidos do arquivo podem ser alterados por informações do banco de dados, variáveis, cálculos, etc; enfim, os dados são manipulados pelo programa COBOL e atualizados no arquivo.

A sintaxe do comando para abrir o arquivo em modo de leitura e escrita, é:
OPEN I-O nome-logico-arquivo.

Exemplo: OPEN I-O ARQUIVO-TESTE.



    2 - Ler os dados no arquivo

Com o comando READ, mesmo procedimento da parte 2.1, é realizado a leitura dos registros do arquivo. Sintaxe:
READ nome-logico-arquivo.

Exemplo: READ ARQUIVO-TESTE.



    3 - Gravar os dados no arquivo

Após ter feito a leitura do registro do arquivo com o comando READ. Usamos o comando REWRITE para realizar a gravação dos novos dados sobre o registro atual do arquivo. Sintaxe:
REWRITE nome-do-item-de-grupo-do-layout-do-arquivo.

      * -- Descricao do arquivo de entrada e saida
       FD ARQUIVO-TESTE.
      *
      * Layout do arquivo: ARQUIVO-TESTE
       01 ARQUIVO-TESTE-REG.
           03 ARQ-TEST-NM-PSS           PIC  X(020).
           03 ARQ-TEST-NM-PSS-SNM       PIC  X(040).
           03 ARQ-TEST-DT-PSS-NSC       PIC  X(010).

Exemplo: REWRITE ARQUIVO-TESTE-REG.



    4 - Encerrar o uso do arquivo

Com o fim da leitura e escrita dos dados no arquivo, é uma boa prática executar o comando CLOSE para fechar o arquivo (encerrar a sessão). Caso, algum arquivo aberto não seja fechado com este comando, então após a execução completa do programa todos arquivos ainda abertos serão fechados. Sintaxe:
CLOSE nome-logico-arquivo.

Exemplo: CLOSE ARQUIVO-TESTE.

  • Exemplo prático de programa
Então com os comandos Open I-O, ReWrite e Close, podemos criar um fluxo simples e eficaz para ler as informações de um arquivo, e sobrescrever o registro do arquivo com novas informações.

Veja a parte do código que contém o fluxo para realizar a leitura e atualização dos dados de um arquivo:
cobol ler e escrever arquivo - felipe barbosa ferreira

Neste programa de exemplo está sendo realizada a leitura de dois registros do arquivo, e alterando a data de nascimento do segundo registro para 99/99/9999. 

Ao ter adicionado comandos displays no programa de exemplo, temos a seguinte resposta após a sua execução:

Abaixo está apresentado o antes e depois dos dados do arquivo para a execução do código de exemplo:

Felipe  Barbosa Ferreira    19/02/1992
Ana     Vieira              12/07/1988
Joao    Santos              03/05/1995
Aline   Silva               14/08/1985

Maira   Dantas              27/12/1976


Felipe  Barbosa Ferreira    19/02/1992
Ana     Vieira              99/99/9999
Joao    Santos              03/05/1995
Aline   Silva               14/08/1985
Maira   Dantas              27/12/1976


Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.
FELIPE BARBOSA FERREIRA

Até o próximo post!

Nenhum comentário:

Postar um comentário