Handling Tables
4.3 Accessing Table Elements
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
PIC X(30)
VALUE "SMILEY
HAPPY
T.213-4332".
10 FILLER
PIC X(30)
VALUE "SMITH
ALAN
C.881-4987".
10 FILLER
PIC X(30)
VALUE "SMITH
CHARLES
J.345-2398".
10 FILLER
PIC X(30)
VALUE "SMITH
FREDERICK
745-0223".
10 FILLER
PIC X(30)
VALUE "SMITH
HARRY
C.573-3306".
10 FILLER
PIC X(30)
VALUE "SMITH
HARRY
J.295-3485".
10 FILLER
PIC X(30)
VALUE "SMITH
LARRY
X.976-5504".
10 FILLER
PIC X(30)
VALUE "SMITHWOOD ALBERT
J.349-9927".
05 PHONE-DIRECTORY-TABLE REDEFINES NAMES-NUMBERS OCCURS 8 TIMES
ASCENDING KEY IS LAST-NAME
FIRST-NAME
MID-INIT
INDEXED BY DIR-INDX.
15 LAST-NAME
PIC X(10).
15 FIRST-NAME
PIC X(10).
15 MID-INIT
PIC XX.
15
PHONE-NUM
PIC X(8).
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).
Handling Tables 4–23