sábado, 5 de novembro de 2016

Trabalhando com arquivos - Parte 1 - Declarações básicas

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
As declarações básicas que devem ser realizadas para trabalhar com arquivos no COBOL, são feitas em três sections: INPUT-OUTPUT; FILE LOCAL-STORAGE. Conforme abaixo:

  • INPUT-OUTPUT
Definição do nome do arquivo lógico para o endereço do arquivo físico, O nome lógico do arquivo é o que será usado no código do programa. 

A sintaxe do código:
      *
       FILE-CONTROL.
      *
      * -- Arquivo de leitura
              SELECT nome-arquivo-logico
               ASSIGN endereco-do-arquivo-fisico
                   FILE STATUS IS variavel-do-status-do-arquivo.

Uma boa prática é definir nome lógico do arquivo conforme seu nome físico, exemplo:
      *
       FILE-CONTROL.
      *
      * -- Arquivo de leitura
              SELECT ARQUIVO-ENTRADA
               ASSIGN 'C:\workspace\arquivo-entrada.txt'
                   FILE STATUS IS IN-FILE-EST-ARQ-ENTD.
  • FILE
Descrição do tipo de arquivo e registro. As declarações do tipo de arquivo são opcionais e são feitas na FD (file description) para maiores detalhes destas declarações veja aqui.

A descrição do registro do arquivo ou também como conhecida de layout do arquivo, é definido logo após a FD do arquivo, contendo exatamente as informações que estão no arquivo. Ou seja, se no arquivo haver por exemplo um nome com o tamanho de 20 bytes e o sobrenome com também 20 bytes de tamanho, o registro do arquivo possui o tamanho de 40 bytes. Assim a representação no COBOL é uma variável nome e sobrenome com o formato de PIC X(020) cada uma.

Abaixo veja o exemplo de layout para o arquivo-entrada.txt
      *
      * -- Descricao do arquivo de entrada
       FD ARQUIVO-ENTRADA.
      *
      * Layout do arquivo: ARQUIVO-ENTRADA
       01 ARQUIVO-ENTRADA-REG.
           03 ARQ-ENTD-NM-PSS           PIC  X(020).
           03 ARQ-ENTD-NM-PSS-SNM       PIC  X(040).
           03 ARQ-ENTD-DT-PSS-NSC       PIC  X(010).

Note que o nome na FD é o nome do arquivo lógico, deste modo está FD está referenciando o arquivo-entrada.txt. E também podemos visualizar que cada registro deste arquivo possui o nome da pessoa com 20 bytes, o sobrenome com 40 bytes, e a data de nascimento com 10 bytes.

  • LOCAL-STORAGE
Nesta section é realizada a declaração da variável para armazenar o status das operações (leitura, escrita, etc.) realizadas no arquivo é feita conforme:
      *
      * -- Declaracao de file-status do arquivo: ARQUIVO-ENTRADA
       01 IN-FILE-EST-ARQ-ENTD          PIC  X(002) VALUE SPACES.

A variável possui o formato de PIC X(002), pois os códigos retornados destas operações não são superior a este formato. Veja a tabela de códigos aqui.

Com as declarações feitas acima já é possível realizar operações no arquivo-entrada.txt. Estas operações serão demonstradas nos próximos posts.

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