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!

domingo, 11 de dezembro de 2016

Trabalhando com arquivos - Parte 2.2 - Código escrita 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 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 três passos: abrir o arquivo em modo de escrita, gravar os dados  (registro) no arquivo e encerrar o uso do arquivo (fechar o arquivo).


    1 - Abrir o arquivo em modo de escrita

Quando a abertura de um arquivo é feita modo de escrita, significa que as informações trabalhadas pelo código COBOL podem ser transmitidas para dentro do arquivo, ou seja, os dados (informações do banco de dados, variáveis, cálculos, etc.) manipulados pelo programa COBOL podem ser gravados em um arquivo.

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

Exemplo: OPEN OUTPUT ARQUIVO-SAIDA.


    2 - Gravar os dados no arquivo

Após ter feito a abertura do arquivo com OPEN OUTPUT, o arquivo está pronto receber informações do programa COBOL. E com o comando WRITE é realizado a gravação dos dados no arquivo. Sintaxe:
WRITE nome-do-item-de-grupo-do-layout-do-arquivo.

      * -- Descricao do arquivo de saida
       FD ARQUIVO-SAIDA.
      *
      * Layout do arquivo: ARQUIVO-SAIDA
       01 ARQUIVO-SAIDA-REG.
           03 ARQ-SAID-NM-PSS           PIC  X(020).

           03 ARQ-SAID-DT-PSS-NSC       PIC  X(010).

Exemplo: WRITE ARQUIVO-SAIDA-REG.



    3 - Encerrar o uso do arquivo

Com o fim da 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-SAIDA.

  • Exemplo prático de programa
Então com os comandos Open Input, Write e Close, podemos criar um fluxo simples e eficaz para a escrita de dados em um arquivo sequencial.

Veja a parte do código que contém o fluxo para realizar a gravação dos dados no arquivo:
FELIPE BARBOSA FERREIRA - FLUXO GRAVACAO ARQUIVO

Sendo que deste modo, se o arquivo já possuir informações, estas serão sobrepostas pela gravação dos dados do programa COBOL. Neste exemplo o arquivo está sendo gravado com as informações de pessoas e cada registro possui os dados dispostos da seguinte forma: o nome com no máximo 20 caracteres;  data de nascimento no formato dd/mm/aaaa.

Abaixo está apresentado os dados que foram gravados no arquivo de saída pela execução do código de exemplo arquivo-saida.txt, que contém 3 registros:

Felipe Barbosa      19/02/1992
Ana Vieira          02/04/1988
Joao Santos         03/05/1995


Também, há o comando OPEN EXTEND que permite a gravação de dados em um arquivo que já possua informações, ou seja, quando realizado a abertura de um arquivo no modo EXTEND é possivel adicionar dados após as informações contidas no arquivo.

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!