43 lines
1.6 KiB
COBOL
43 lines
1.6 KiB
COBOL
* HINA024 - 内部テーブル検索(SEARCH ALL)
|
|
>>SOURCE FORMAT IS FREE
|
|
* OCCURS + SEARCH ALL によるテーブル検索
|
|
* 期待: SEARCH ALL, OCCURS, 2 IF, 5 段落
|
|
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. HINA024.
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
01 WS-TABLE.
|
|
05 WS-ENTRY OCCURS 10 TIMES
|
|
ASCENDING KEY IS WS-ENTRY-ID
|
|
INDEXED BY WS-IDX.
|
|
10 WS-ENTRY-ID PIC 9(03).
|
|
10 WS-ENTRY-NAME PIC X(10).
|
|
01 WS-SEARCH-ID PIC 9(03).
|
|
01 WS-FOUND PIC X VALUE 'N'.
|
|
88 FOUND-YES VALUE 'Y'.
|
|
01 WS-RESULT PIC X(30).
|
|
PROCEDURE DIVISION.
|
|
0000-MAIN.
|
|
PERFORM 1000-INIT.
|
|
MOVE 7 TO WS-SEARCH-ID.
|
|
PERFORM 2000-SEARCH.
|
|
DISPLAY WS-RESULT.
|
|
MOVE 99 TO WS-SEARCH-ID.
|
|
PERFORM 2000-SEARCH.
|
|
DISPLAY WS-RESULT.
|
|
STOP RUN.
|
|
1000-INIT.
|
|
MOVE 1 TO WS-ENTRY-ID(1) MOVE "ALPHA" TO WS-ENTRY-NAME(1).
|
|
MOVE 3 TO WS-ENTRY-ID(2) MOVE "BETA" TO WS-ENTRY-NAME(2).
|
|
MOVE 5 TO WS-ENTRY-ID(3) MOVE "GAMMA" TO WS-ENTRY-NAME(3).
|
|
MOVE 7 TO WS-ENTRY-ID(4) MOVE "DELTA" TO WS-ENTRY-NAME(4).
|
|
MOVE 9 TO WS-ENTRY-ID(5) MOVE "EPSLN" TO WS-ENTRY-NAME(5).
|
|
2000-SEARCH.
|
|
SET WS-IDX TO 1.
|
|
SEARCH ALL WS-ENTRY
|
|
AT END
|
|
MOVE "NOT FOUND" TO WS-RESULT
|
|
WHEN WS-ENTRY-ID(WS-IDX) = WS-SEARCH-ID
|
|
STRING "FOUND=" WS-ENTRY-NAME(WS-IDX)
|
|
DELIMITED BY SIZE INTO WS-RESULT.
|