Exemple – SEARCH ALL

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