arquivo cadastro entrada
1 mickey
2 pateta
3 erro
5 deise
10 cascão
11 magali
12 horacio
13 bidu
14 horacio
15 piteco
16 bolota
--------------------------------------------------------------------------------\
arquivo atualização
alterar 3 Minie
Incluir 4 Donald
Incluir 6 Gastao
Incluir 8 patinhas
excluir 12 horacio
excluir 15 piteco
alterar 16 cebolinha
incluir 17 monica
--------------------------------------------------------------------------------\
aquivo de cadastro saida
1 Mickey
2 pateta
3 Miney
4 Donald
5 Dayse
6 Gastao
8 Patinhas
7 Monica
9 Luisinho
10 Cascao
11 magali
13 Bidu
14 Horacio
16 Cebolinha
17 MOnica
--------------------------------------------------------------------------------\
Ae galera , podem me ajudar com esse balance line
tenho um arquico de entrada e um arquivo de atualização quero gravar os dados em
um arquivo de saida .
Identification Division.
Program-Id. Teste.
Environment Division.
Configuration Section.
Input-Output Section.
File-Control.
Select Entrada assign ut-s-Entrada
organization is sequential
file status is fs-ent.
Select Atualiz assign ut-s-Atualizacao
organization is sequential
file status is fs-atu.
Select Saida assign ut-s-Saida
organization is sequential
file status is fs-sai.
Data Division.
File Section.
FD Entrada.
01 RegEnt.
03 EntCodigo pic 9(03).
03 filler pic x(01).
03 EntNome pic x(30).
FD Atualiz.
01 RegAtu.
03 AtuCodigo pic 9(03).
03 filler pic x(01).
03 AtuNome pic x(30).
FD Saida.
01 RegSai.
03 SaiCodigo pic 9(03).
03 filler pic x(01).
03 SaiNome pic x(30).
Working-Storage Section.
01 WRK-AREAS.
03 WLIM PIC 9(03) VALUE 27.
03 fs-ent PIC X(2) VALUE SPACES.
03 fs-sai PIC X(2) VALUE SPACES.
03 WRK-FIM PIC X(1) VALUE ‘N’.
03 AC-LIDOS PIC 9(5) VALUE ZEROS.
03 AC-PAG PIC 9(3) VALUE ZEROS.
03 AC-LIN PIC 9(2) VALUE 99.
77 fs-ent pic x(02) value spaces.
77 fs-atu pic x(02) value spaces.
77 fs-sai pic x(02) value spaces.
*PROCEDURE DIVISION
PROCEDURE DIVISION.
PRINCIPAL SECTION.
PERFORM 100-INICIALIZA.
PERFORM 200-LER-ENTRADA.
PERFORM 250-LER-ATUALIZ.
PERFORN 300-GRAVAR.
PERFORM 500-PROCESSA UNTIL WRK-FIM = ‘S’
PERFORM 900-FINALIZA.
STOP RUN.
PRINCIPAL-EXIT.
EXIT.
100-INICIALIZA SECTION.
OPEN INPUT ENTRADA , atualiz
OUTPUT saida.
IF fs-ent NOT EQUAL ‘00’
DISPLAY ‘Erro ao abrir Arq. Entrada. St:’ fs-ent
PERFORM 999-ERRO
END-IF
IF fs-atu NOT EQUAL ‘00’
DISPLAY ‘Erro ao abrir Arq.Atualização. St:’ fs-atu
PERFORM 999-ERRO
END-IF.
100-EXIT.
EXIT.
200-LER-Entrada SECTION.
READ ENTRADA INTO RegEnt
IF fs-ent EQUAL ‘00’
ADD 1 TO AC-LIDOS
ELSE
IF fs-ent EQUAL ‘10’
MOVE ‘S’ TO WRK-FIM
ELSE
DISPLAY ‘ERRO LER ARQUIVO’
PERFORM 999-ERRO
END-IF
END-IF.
200-EXIT.
EXIT.
250-LER-ATUALIZ SECTION.
READ ATUALIZ INTO RegAtu
IF FS-ATU EQUAL ‘00’
ADD 1 TO AC-LIDOS
ELSE
IF FS-ATU EQUAL ‘10’
MOVE ‘S’ TO WRK-FIM
ELSE
DISPLAY ‘ERRO LER ARQUIVO’
PERFORM 999-ERRO
END-IF
END-IF.
250-EXIT.
EXIT.
500-PROCESSA SECTION.
If EntCodigo < AtuCodigo
READ entrada NEXT.
If EntCodigo equal AtuCodigo
Perform grava.
Else
Read entrada
Read
End-if
Grava.
move RegAtu to RegSai
write saida from RegSai.
500-EXIT.
EXIT.
999-ERRO SECTION.
DISPLAY ‘PROGRAMA CANCELADO***’.
STOP RUN.
999-EXIT.
EXIT.
900-FINALIZA SECTION.
CLOSE Entrada , atualiz , saida .
IF fs-ent NOT EQUAL ‘00’
DISPLAY ‘Erro ao fechar Arq. Entrada. St:’ fs-ent
PERFORM 999-ERRO
END-IF
IF fs-atu NOT EQUAL ‘00’
DISPLAY ‘Erro ao fechar Arq.Relatorio. St:’ fs-atu
PERFORM 999-ERRO
END-IF.
DISPLAY ‘’
DISPLAY ‘* PROGRAMA FINALIZADO COM SUCESSO *’
DISPLAY '’.
900-EXIT.
EXIT