COBOL Manual for TNS/E Programs (H06.08+, J06.03+)
the five characters “Adams,” the statement must raise the EOF condition and not deliver that record
to the program.
You usually use generic positioning with partial keys. Using key values that include trailing spaces,
you can achieve an effect similar (but not identical) to exact positioning. Consider the case of
“Adams.” If you want to find only the Adamses (but not any Adamsons), you can use a complete
key of “Adams” plus enough spaces to fill out the key.
Suppose that an HP COBOL program includes the code in Example 286.
Example 286 Generic Positioning
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT NAME-FILE ASSIGN TO "$JUICE.APPLE.NAME"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS KEY-NUMBER
ALTERNATE RECORD KEY IS KEY-NAME WITH DUPLICATES
...
DATA DIVISION.
FILE SECTION.
FD NAME-FILE
RECORD CONTAINS 5 TO 100 CHARACTERS
LABEL RECORDS ARE OMITTED.
01 NAME-FILE-REC.
02 KEY-NUMBER PIC X(5).
03 FILLER PIC X(3).
02 KEY-NAME PIC X(35).
02 REDEF-KEY REDEFINES KEY-NAME.
04 FIRST-5 PIC X(5).
04 FILLER PIC X(30).
...
PROCEDURE DIVISION.
THE-TOP.
OPEN I-O NAME-FILE.
PERFORM SHOW-NAMES.
STOP RUN.
SHOW-NAMES.
DISPLAY "SHALL I START THE FILE GENERIC?".
ACCEPT WHAT-FILE.
IF WHAT-FILE = "Y"
DISPLAY "WHAT FIRST 5 LETTERS SHALL I USE?"
ACCEPT FIRST-5
START NAME-FILE KEY = FIRST-5 GENERIC
ELSE
DISPLAY "WHAT APPROXIMATE NAME SHALL I START AT?"
ACCEPT KEY-NAME
START NAME-FILE KEY = KEY-NAME APPROXIMATE.
PERFORM GET-AND-DISPLAY UNTIL NOT NAME-FILE-OK.
GET-AND-DISPLAY.
READ NAME-FILE NEXT;
AT END MOVE "99999-----EOF" TO NAME-FILE-REC.
DISPLAY KEY-NUMBER, "---", KEY-NAME.
Suppose that NAME-FILE contains these records:
00005 ADAMS
00010 ADAMSKI
00121 JOHNSON
01010 ADAMS
12532 REITWIESNER
43132 SMITH
52353 ROTH
872 Disk Input and Output










