Módulo COBOL de leitura de arquivo sequencial.
******************************************************************
* PROGRAMADOR: JOSE ROBERTO - COBOLDICAS
* DATA: 13/02/2025
* OBJETIVO: MODULO DE LEITURA DE ARQUIVO SEQUENCIAL
* OBS.:
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. LER0001A.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ARQUIVO-ENTRADA ASSIGN TO "SEQENT01.dat"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD ARQUIVO-ENTRADA.
01 WRK-COPY002A-REGISTRO.
05 WRK-COPY002A-CADUSUAR.
10 WRK-COPY002A-COD PIC 9(02).
10 WRK-COPY002A-NOME PIC X(30).
10 WRK-COPY002A-IDADE PIC 9(02).
10 WRK-COPY002A-DATA-NASC PIC 9(08).
10 WRK-COPY002A-CARGO PIC X(20).
10 WRK-COPY002A-EMAIL PIC X(50).
10 WRK-COPY002A-TELEFONE PIC 9(09).
10 WRK-COPY002A-ENDERECO.
15 WRK-COPY002A-RUA PIC X(50).
15 WRK-COPY002A-CIDADE PIC X(30).
15 WRK-COPY002A-ESTADO PIC X(02).
15 WRK-COPY002A-CEP PIC 9(08).
WORKING-STORAGE SECTION.
01 FIM-ARQUIVO PIC X VALUE "N".
01 WRK-IND1 PIC 9(02) VALUE ZEROS.
LINKAGE SECTION.
* Definição da estrutura do cadastro
COPY COPY002A.
*================================================================*
PROCEDURE DIVISION USING COPY002A-REGISTRO.
*================================================================*
*----------------------------------------------------------------*
* PROCESSAMENTO PRINCIPAL
*----------------------------------------------------------------*
*> cobol-lint CL002 0000-processar
0000-PROCESSAR SECTION.
*----------------------------------------------------------------*
OPEN INPUT ARQUIVO-ENTRADA.
PERFORM 0001-LER-ARQSEQ
MOVE COPY002A-QUANT-REG TO WRK-IND1
PERFORM 0002-LER-REGISTRO UNTIL FIM-ARQUIVO = "S"
PERFORM 9999-FINALIZAR
.
*----------------------------------------------------------------*
*> cobol-lint CL002 0000-end
0000-END. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* FAZER CADASTRO USUARIO
*----------------------------------------------------------------*
0001-LER-ARQSEQ SECTION.
*----------------------------------------------------------------*
READ ARQUIVO-ENTRADA INTO WRK-COPY002A-REGISTRO
AT END MOVE "S" TO FIM-ARQUIVO
END-READ
.
*----------------------------------------------------------------*
*> cobol-lint CL002 0001-end
0001-END. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* LEITURA E MOVIMENTACAO DE REGISTROS
*----------------------------------------------------------------*
0002-LER-REGISTRO SECTION.
*----------------------------------------------------------------*
ADD 1 TO WRK-IND1
MOVE WRK-COPY002A-REGISTRO TO COPY002A-CADUSUAR(WRK-IND1)
IF FIM-ARQUIVO = "N"
DISPLAY "ID: " COPY002A-COD(WRK-IND1)
- " - NOME: " COPY002A-NOME(WRK-IND1)
END-IF
PERFORM 0001-LER-ARQSEQ
.
*----------------------------------------------------------------*
*> cobol-lint CL002 0002-end
0002-END. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* FINALIZAR PROGRAMA
*----------------------------------------------------------------*
9999-FINALIZAR SECTION.
*----------------------------------------------------------------*
MOVE WRK-IND1 TO COPY002A-QUANT-REG
CLOSE ARQUIVO-ENTRADA
GOBACK
.
*----------------------------------------------------------------*
*> cobol-lint CL002 9999-end
9999-END. EXIT.
*----------------------------------------------------------------*