Documente Academic
Documente Profesional
Documente Cultură
IDENTIFICATION DIVISION.
PROGRAM-ID.
FLPGM01.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUST-FILE
ASSIGN
ORGANIZATION
ACCESS MODE
FILE STATUS
DATA DIVISION.
FILE SECTION.
FD CUST-FILE.
01 CUST-FILE-REC.
05 CUST-ID
05 FILLER
05 CUST-NAME
05 FILLER
05 CUST-CONTACT
05 FILLER
05 CUST-LOCATION
05 FILLER
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
WORKING-STORAGE SECTION.
01 W01-STAT01
PIC 9(02).
TO
IS
IS
IS
CUSTFILE
SEQUENTIAL
SEQUENTIAL
W01-STAT01.
X(12).
X(01).
X(15).
X(01).
9(10).
X(01).
X(10).
X(30).
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM INITIALIZE-PARA
PERFORM OPEN-PARA
PERFORM READ-PARA
UNTIL ( W01-STAT01 NOT = 00 )
PERFORM CLOSE-PARA
PERFORM TERMINATE-PARA.
INITIALIZE-PARA.
INITIALIZE W01-STAT01.
OPEN-PARA.
OPEN INPUT CUST-FILE.
IF ( W01-STAT01 NOT = 00 ) THEN
DISPLAY 'OPEN INPUT FILE FAILED' W01-STAT01
END-IF.
READ-PARA.
READ CUST-FILE
*
AT END DISPLAY 'HELLO THERE YOU REACHED THE END'
*
NOT AT END DISPLAY 'YOU CAN NOW GO TO DISPLAY PARA'
END-READ
*
WHEN ( W01-STAT01 = 10 )
DISPLAY 'END OF FILE REACHED'
WHEN OTHER
WHEN OTHER
DISPLAY 'ERROR IN READ '
END-EVALUATE.
DISPLAY-PARA.
DISPLAY '
'
'
'
|
|
|
|
'
'
'
'
CUST-ID
CUST-NAME
CUST-CONTACT
CUST-LOCATION.
CLOSE-PARA.
CLOSE CUST-FILE
IF ( W01-STAT01 NOT = 00 ) THEN
DISPLAY 'CLOSE INPUT FILE FAILED'
END-IF.
TERMINATE-PARA.
STOP RUN.
ASSIGN
ORGANIZATION
ACCESS MODE
RECORD KEY
FILE STATUS
DATA DIVISION.
FILE SECTION.
*
FD EMP-FILE.
01 EMP-FILE-REC.
05 EMP-ID
05 FILLER
05 EMP-NAME
05 FILLER
05 EMP-CONTACT
05 FILLER
05 EMP-SALARY
05 FILLER
WORKING-STORAGE SECTION.
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
9(04).
X(01).
X(08).
X(01).
9(10).
X(01).
9(06)V9(02).
X(47).
TO
IS
IS
IS
IS
EMPFILE
INDEXED
RANDOM
EMP-ID
W01-STAT01.
01 W01-STAT01
PIC 9(02).
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM INITIALIZE-PARA
PERFORM OPEN-PARA
ACCEPT EMP-ID
PERFORM READ-PARA
PERFORM CLOSE-PARA
PERFORM TERMINATE-PARA.
INITIALIZE-PARA.
INITIALIZE W01-STAT01.
OPEN-PARA.
OPEN INPUT EMP-FILE
IF ( W01-STAT01 NOT = 00 ) THEN
DISPLAY 'OPEN INPUT FILE FAILED'
END-IF.
READ-PARA.
READ EMP-FILE
INVALID KEY DISPLAY '<<<---'
NOT INVALID KEY DISPLAY '--->>'
END-READ
*
|
|
|
|
'
'
'
'
EMP-ID
EMP-NAME
EMP-CONTACT
EMP-SALARY.
CLOSE-PARA.
CLOSE EMP-FILE
IF ( W01-STAT01 NOT = 00 )
DISPLAY 'CLOSE INPUT/OUTPUT FILE FAILED'
END-IF.
TERMINATE-PARA.
STOP RUN.
//** --- compare PS with KSDS --- ***//
IDENTIFICATION DIVISION.
PROGRAM-ID.
FLPGM05.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT TRANS-FILE
SELECT MASTR-FILE
ASSIGN
ORGANIZATION
ACCESS MODE
FILE STATUS
TO
IS
IS
IS
TRNSFL
SEQUENTIAL
SEQUENTIAL
W01-STAT01.
ASSIGN
ORGANIZATION
ACCESS MODE
RECORD KEY
FILE STATUS
TO
IS
IS
IS
IS
MSTRFL
INDEXED
RANDOM
EMP-ID1
W01-STAT02.
DATA DIVISION.
FILE SECTION.
*
PIC 9(04).
PIC X(06).
FD MASTR-FILE.
01 MASTR-FILE-REC.
05 EMP-ID1
05 FILLER
05 EMP-NAME1
05 FILLER
05 EMP-CONTACT1
05 FILLER
05 EMP-SALARY1
05 FILLER
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
9(04).
X(01).
X(08).
X(01).
9(10).
X(01).
9(06)V9(02).
X(47).
WORKING-STORAGE SECTION.
01 W01-STAT01
PIC 9(02).
01 W01-STAT02
PIC 9(02).
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM INITIALIZE-PARA
PERFORM OPEN-PARA
PERFORM READ-PARA
UNTIL ( W01-STAT01 NOT = 00 )
PERFORM CLOSE-PARA
PERFORM TERMINATE-PARA.
INITIALIZE-PARA.
INITIALIZE W01-STAT01
W01-STAT02.
OPEN-PARA.
OPEN INPUT TRANS-FILE
MASTR-FILE
IF ( W01-STAT01 NOT = 00 )
OR ( W01-STAT02 NOT = 00 )
DISPLAY 'OPEN INPUT KSDS/PS FILE FAILED'
MOVE 10
TO W01-STAT01
END-IF.
READ-PARA.
READ TRANS-FILE
END-READ
*
RAND-READ-PARA.
MOVE EMP-ID
TO EMP-ID1
READ MASTR-FILE
END-READ
EVALUATE TRUE
WHEN ( W01-STAT02 = 00 )
PERFORM DISPLAY-PARA
WHEN ( W01-STAT02 = 23 )
DISPLAY 'KEY ' EMP-ID1 'NOT FOUND'
WHEN OTHER
DISPLAY 'ERROR IN RAND READ '
END-EVALUATE.
DISPLAY-PARA.
DISPLAY '
'
'
'
|
|
|
|
'
'
'
'
EMP-ID1
EMP-NAME1
EMP-CONTACT1
EMP-SALARY1.
CLOSE-PARA.
CLOSE TRANS-FILE
MASTR-FILE
IF ( W01-STAT01 NOT = 00 )
OR ( W01-STAT02 NOT = 00 )
DISPLAY 'CLOSE INPUT KSDS/PS FILE FAILED'
END-IF.
TERMINATE-PARA.
STOP RUN.