Programme utilisant le SEARCH ALL :
*----------------------------------------------------
IDENTIFICATION DIVISION.
*----------------------------------------------------
PROGRAM-ID. SEARCHALL.
AUTHOR. LA COMMUNAUTE DU COBOL.
*----------------------------------------------------
ENVIRONMENT DIVISION.
*----------------------------------------------------
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
*----------------------------------------------------
DATA DIVISION.
*----------------------------------------------------
WORKING-STORAGE SECTION.
01 WS-TABLE-PRODUITS.
05 TAB-PRODUITS.
10 FILLER PIC X(021) VALUE "01RIZ".
10 FILLER PIC X(021) VALUE "02FARITAS".
10 FILLER PIC X(021) VALUE "03SEL".
10 FILLER PIC X(021) VALUE "04PATE".
10 FILLER PIC X(021) VALUE "05ASSIETE".
10 FILLER PIC X(021) VALUE "06CARNET".
10 FILLER PIC X(021) VALUE "07BISCUIT".
10 FILLER PIC X(021) VALUE "08CHOCOLAT".
10 FILLER PIC X(021) VALUE "09SAVON".
10 FILLER PIC X(021) VALUE "10PAPIER".
10 FILLER PIC X(021) VALUE "11EAU".
10 FILLER PIC X(021) VALUE "12SODA".
10 FILLER PIC X(021) VALUE "13LIQUIDE VAISSELLE".
10 FILLER PIC X(021) VALUE "14EPONGE".
10 FILLER PIC X(021) VALUE "15CAFE".
10 FILLER PIC X(021) VALUE "16NESCAFE".
10 FILLER PIC X(021) VALUE "17PAIN".
10 FILLER PIC X(021) VALUE "18KETCHUP".
10 FILLER PIC X(021) VALUE "19FRITE".
10 FILLER PIC X(021) VALUE "20LAIT".
10 FILLER PIC X(021) VALUE "21BEURRE".
10 FILLER PIC X(021) VALUE "22FROMAGE".
10 FILLER PIC X(021) VALUE "23THE".
10 FILLER PIC X(021) VALUE "24OLIVE".
10 FILLER PIC X(021) VALUE "25SHAMPOING".
10 FILLER PIC X(021) VALUE "26CREME LAVANTE".
10 FILLER PIC X(021) VALUE "27GEL DOUCHE".
05 TAB-PRODUITS-R REDEFINES TAB-PRODUITS.
07 WS-PRODUIT OCCURS 27 TIMES
ASCENDING KEY COD-PRODUIT
INDEXED BY IX-TAB.
10 COD-PRODUIT PIC 9(002).
10 NOM-PRODUIT PIC X(019).
01 WS-AUXILIARES.
05 NON-TROUVE PIC 9(003) VALUE ZEROES.
05 WS-COD-PRODUIT PIC 9(002) VALUE ZEROES.
05 VARIABLE PIC X(019) VALUE SPACES.
05 WS-X PIC 9(002) VALUE ZEROES.
*----------------------------------------------------
PROCEDURE DIVISION.
*----------------------------------------------------
MOVE ZEROES TO NON-TROUVE
MOVE 23 TO WS-COD-PRODUIT
SEARCH ALL WS-PRODUIT
AT END
MOVE 1 TO NON-TROUVE
WHEN COD-PRODUIT (IX-TAB) EQUAL WS-COD-PRODUIT
MOVE NOM-PRODUIT (IX-TAB) TO VARIABLE
END-SEARCH
IF NON-TROUVE EQUAL 0
DISPLAY "TROUVE " WS-COD-PRODUIT " Nom du produit: " VARIABLE
ELSE
DISPLAY "NON TROUVE - Code du produit - " WS-COD-PRODUIT
END-IF.
STOP RUN.
TROUVE 23 Nom du produit: THE
MOVE 28 TO WS-COD-PRODUIT
NON TROUVE - Code du produit - 28