Compaq COBOL AAQ2G1FTK User Manual
Page 213

Processing Files and Records
6.3 Creating and Processing Files
Example 6–26 Creating and Populating an Indexed File
IDENTIFICATION DIVISION.
PROGRAM-ID. INDEX02.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT-FILE ASSIGN TO "DAIRYI".
SELECT FLAVORS
ASSIGN TO "DAIRY"
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS ICE-CREAM-MASTER-KEY
ALTERNATE RECORD KEY IS ICE-CREAM-STORE-STATE
WITH DUPLICATES
ALTERNATE RECORD KEY IS ICE-CREAM-STORE-CODE.
DATA DIVISION.
FILE SECTION.
FD
INPUT-FILE.
01
INPUT-RECORD.
02
INPUT-RECORD-KEY
PIC 9999.
02
INPUT-RECORD-DATA
PIC X(47).
FD
FLAVORS.
01
ICE-CREAM-MASTER.
02 ICE-CREAM-MASTER-KEY
PIC XXXX.
02 ICE-CREAM-MASTER-DATA.
03
ICE-CREAM-STORE-CODE
PIC XXXXX.
03
ICE-CREAM-STORE-ADDRESS
PIC X(20).
03
ICE-CREAM-STORE-CITY
PIC X(20).
03
ICE-CREAM-STORE-STATE
PIC XX.
WORKING-STORAGE SECTION.
01
END-OF-FILE
PIC X.
PROCEDURE DIVISION.
A000-BEGIN.
OPEN INPUT INPUT-FILE.
OPEN OUTPUT FLAVORS.
A010-POPULATE.
PERFORM A100-READ-INPUT UNTIL END-OF-FILE = "Y".
A020-EOJ.
DISPLAY "END OF JOB".
STOP RUN.
A100-READ-INPUT.
READ INPUT-FILE INTO ICE-CREAM-MASTER
AT END MOVE "Y" TO END-OF-FILE.
IF END-OF-FILE NOT = "Y"
WRITE ICE-CREAM-MASTER INVALID KEY DISPLAY "BAD WRITE"
STOP RUN.
The program can add records to the file until it reaches the physical limitations
of its storage device. When this occurs, you should follow these steps:
1.
Delete unnecessary records.
2.
Back up the file.
3.
Recreate the file either by using the OpenVMS Alpha CONVERT Utility to
optimize file space, or by using a Compaq COBOL program.
Statements for Indexed File Processing
Processing an indexed file involves the following:
1.
Opening the file
2.
Processing the file with valid I/O statements
3.
Closing the file
Processing Files and Records 6–33