Example 4–24 shows how to perform a multiple-key, binary search.
Example 4–24 A Multiple-Key, Binary Search
IDENTIFICATION DIVISION.
PROGRAM-ID. MULTI-KEY-SEARCH.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DIRECTORY-TABLE.
05 NAMES-NUMBERS.
10 FILLER
VALUE "SMILEY
10 FILLER
VALUE "SMITH
10 FILLER
VALUE "SMITH
10 FILLER
VALUE "SMITH
10 FILLER
VALUE "SMITH
10 FILLER
VALUE "SMITH
10 FILLER
VALUE "SMITH
10 FILLER
VALUE "SMITHWOOD ALBERT
05 PHONE-DIRECTORY-TABLE REDEFINES NAMES-NUMBERS OCCURS 8 TIMES
15 LAST-NAME
15 FIRST-NAME
15 MID-INIT
15 PHONE-NUM
PROCEDURE DIVISION.
MULTI-KEY-BINARY-SEARCH.
SEARCH ALL PHONE-DIRECTORY-TABLE
WHEN LAST-NAME(DIR-INDX) = "SMITH"
AND FIRST-NAME(DIR-INDX) = "HARRY"
AND MID-INIT(DIR-INDX) = "J."
NEXT SENTENCE.
DISPLAY-RESULTS.
DISPLAY LAST-NAME(DIR-INDX)","
FIRST-NAME(DIR-INDX)
MID-INIT(DIR-INDX) " "
PHONE-NUM(DIR-INDX).
4.3 Accessing Table Elements
PIC X(30)
HAPPY
T.213-4332".
PIC X(30)
ALAN
C.881-4987".
PIC X(30)
CHARLES
J.345-2398".
PIC X(30)
FREDERICK
745-0223".
PIC X(30)
HARRY
C.573-3306".
PIC X(30)
HARRY
J.295-3485".
PIC X(30)
LARRY
X.976-5504".
PIC X(30)
J.349-9927".
ASCENDING KEY IS LAST-NAME
INDEXED BY DIR-INDX.
PIC X(10).
PIC X(10).
PIC XX.
PIC X(8).
Handling Tables
FIRST-NAME
MID-INIT
Handling Tables 4–23
Need help?
Do you have a question about the COBOL AAQ2G1FTK and is the answer not in the manual?
Questions and answers