I'm trying to understand the SEARCH verb...
Below I am reading sequential records from a file into a TABLE and then try to search it.. However it only matches when AIR-ID is 01 or 02, not 03.
I must be missing something fundamental, and been trying to look through various example with no luck.
IDENTIFICATION DIVISION.
PROGRAM-ID. Search.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT AIRLINES ASSIGN TO "AIRLINES.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD AIRLINES.
01 AIRLINE-RECORDS.
05 AIRLINE-ID PIC 99.
05 AIRLINE-NAME PIC X(15).
WORKING-STORAGE SECTION.
01 WS-AIRLINES.
05 WS-ENTRIES OCCURS 4 TIMES INDEXED BY X1.
10 WS-AIRLINE-ID PIC 99.
10 WS-AIRLINE-NAME PIC X(15).
01 AIR-ID PIC 99 VALUE 04.
01 EOF-SWITCH PIC X VALUE "N".
PROCEDURE DIVISION.
000-INITIALIZE.
OPEN INPUT AIRLINES
PERFORM 100-READ-FILE
PERFORM 200-SEARCH-FILE
.
100-READ-FILE.
READ AIRLINES INTO WS-AIRLINES
.
200-SEARCH-FILE.
SET X1 TO 1.
SEARCH WS-ENTRIES
AT END
DISPLAY "NOT FOUND"
WHEN AIR-ID = WS-AIRLINE-ID (X1)
DISPLAY WS-AIRLINE-NAME (X1)
DISPLAY X1
END-SEARCH
.
AIRLINES.DAT
01airline01
02airline02
03airline03
04airline04