tinycobol/test_suite/idxio_tests/idxio03.cob

96 lines
2.7 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. IDXIO03.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT TEST-FILE
ASSIGN TO "./idx_test.dat"
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS TR-KEY
FILE STATUS IS TR-FS.
DATA DIVISION.
FILE SECTION.
FD TEST-FILE
LABEL RECORDS ARE STANDARD.
01 TEST-REC.
05 TR-GKEY.
10 TR-KEY PIC 9(03).
05 TR-REC-TYPE PIC X(02).
05 TR-DESCRIPTION PIC X(60).
WORKING-STORAGE SECTION.
01 TR-FS PIC 9(02).
01 W-COUNTER PIC 9(15).
01 REM PIC 9(5).
01 W01-SWITCHES PIC X(03).
88 W01-END VALUE "YES".
88 W01-MORE VALUE "NO".
PROCEDURE DIVISION.
0000-PROGRAM-ENTRY.
PERFORM A000-INITIALIZE.
0000-LOOP.
PERFORM C000-PROCESS THRU C000-EXIT .
IF W01-SWITCHES = "NO"
GO TO 0000-LOOP.
PERFORM B000-HOUSEKEEPING.
STOP RUN.
A000-INITIALIZE.
OPEN INPUT TEST-FILE.
MOVE LOW-VALUES TO TR-GKEY.
DISPLAY "ISO2:(" TR-FS "):(00):S/INDEX READ OPEN".
MOVE "NO" TO W01-SWITCHES.
MOVE 0 TO W-COUNTER.
B000-HOUSEKEEPING.
CLOSE TEST-FILE.
DISPLAY "ISC2:(" TR-FS "):(00):S/INDEX READ CLOSE".
C000-PROCESS.
* ADD 1 TO W-COUNTER.
* MOVE W-COUNTER TO TR-KEY.
READ TEST-FILE NEXT.
IF TR-FS NOT = 0
MOVE "YES" TO W01-SWITCHES
GO TO C000-EXIT.
IF TR-KEY = 1
DISPLAY "IS21:(" TR-FS "):(00):S/INDEX FILE READ"
DISPLAY "IS22:(" TR-REC-TYPE "):(UR):S/INDEX FILE READ".
IF TR-KEY = 50
DISPLAY "IS23:(" TR-FS "):(00):S/INDEX FILE READ"
DISPLAY "IS24:(" TR-REC-TYPE "):(S1):S/INDEX FILE READ".
IF TR-KEY = 75
DISPLAY "IS21:(" TR-FS "):(00):S/INDEX FILE READ"
DISPLAY "IS22:(" TR-REC-TYPE "):(UR):S/INDEX FILE READ".
IF TR-KEY = 100
DISPLAY "IS23:(" TR-FS "):(00):S/INDEX FILE READ"
DISPLAY "IS24:(" TR-REC-TYPE "):(S2):S/INDEX FILE READ".
IF TR-KEY = 200
DISPLAY "IS23:(" TR-FS "):(00):S/INDEX FILE READ"
DISPLAY "IS24:(" TR-REC-TYPE "):(S3):S/INDEX FILE READ".
IF TR-KEY = 998
DISPLAY "IS23:(" TR-FS "):(00):S/INDEX FILE READ"
DISPLAY "IS24:(" TR-REC-TYPE "):(S4):S/INDEX FILE READ".
C000-EXIT.
EXIT.