COBOL - Exemplos simples - SEARCH ALL - TABELA DESORDENADA - CHAVE ALFA



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Exemplos simples - SEARCH ALL - TABELA DESORDENADA - CHAVE ALFA

      *-----------------------------------------------------------------
       IDENTIFICATION DIVISION.                                         
      *-----------------------------------------------------------------
       PROGRAM-ID.      SEARCHALL.                                       
       AUTHOR.          DORNELLES CARLOS ALBERTO.                       
      *-----------------------------------------------------------------
      *  PROGRAMA      : SEARCH                                       
      *  OBJETIVO      : COMANDO SEARCH ALL COM TABELA DESORDENADA           
      *                : CHAVE ALFA                                 
      *  ANALISTA      : CARLOS ALBERTO DORNELLES                       
      *  DESENVOLVEDOR : CARLOS ALBERTO DORNELLES                       
      *  LINGUAGEM     : COBOL                                          
      *  MODO OPERACAO : BATCH                                          
      *-----------------------------------------------------------------
      *  VERSAO DD.MM.AAAA  HISTORICO        AUTOR                             
      *  ------ ----------  ---------------  ---------------------------                           
      *    001  20.06.2021  PROGRAMA INICIAL DORNELLES CARLOS ALBERTO                           
      *-----------------------------------------------------------------

      *-----------------------------------------------------------------
       ENVIRONMENT DIVISION.                                            
      *-----------------------------------------------------------------
       CONFIGURATION SECTION.                                           
       SPECIAL-NAMES.                                                   
                        DECIMAL-POINT IS COMMA.                         

       DATA DIVISION.                                                   

       WORKING-STORAGE SECTION.                                         
                                                                        
        01  WS-TABELA-ESTADOS.                                           
           05 TAB-ESTADOS.                                              
              10  FILLER       PIC X(021) VALUE "ACACRE               ".
              10  FILLER       PIC X(021) VALUE "ALALAGOAS            ".
              10  FILLER       PIC X(021) VALUE "AMAMAZONAS           ".
              10  FILLER       PIC X(021) VALUE "MSMATO GROSSO DO SUL ".
              10  FILLER       PIC X(021) VALUE "MTMATO GROSSO        ".
              10  FILLER       PIC X(021) VALUE "PAPARA               ".
              10  FILLER       PIC X(021) VALUE "PBPARAIBA            ".
              10  FILLER       PIC X(021) VALUE "PEPERNAMBUCO         ".
              10  FILLER       PIC X(021) VALUE "DFDISTRITO FEDERAL   ".
              10  FILLER       PIC X(021) VALUE "ESESPIRITO SANTO     ".
              10  FILLER       PIC X(021) VALUE "GOGOIAS              ".
              10  FILLER       PIC X(021) VALUE "MAMARANHAO           ".
              10  FILLER       PIC X(021) VALUE "MGMINAS GERAIS       ".
              10  FILLER       PIC X(021) VALUE "PIPIAUI              ".
              10  FILLER       PIC X(021) VALUE "PRPARANA             ".
              10  FILLER       PIC X(021) VALUE "RJRIO DE JANEIRO     ".
              10  FILLER       PIC X(021) VALUE "RNRIO GRANDE DO NORTE".
              10  FILLER       PIC X(021) VALUE "RORONDONIA           ".
              10  FILLER       PIC X(021) VALUE "RRRORAIAMA           ".
              10  FILLER       PIC X(021) VALUE "RSRIO GRANDE DO SUL  ".
              10  FILLER       PIC X(021) VALUE "APAMAPA              ".
              10  FILLER       PIC X(021) VALUE "BABAHIA              ".
              10  FILLER       PIC X(021) VALUE "CECEARA              ".
              10  FILLER       PIC X(021) VALUE "SCSANTA CATARINA     ".
              10  FILLER       PIC X(021) VALUE "SESERGIPE            ".
              10  FILLER       PIC X(021) VALUE "SPSAO PAULO          ".
              10  FILLER       PIC X(021) VALUE "TOTOCANTINS          ".
           05 TAB-ESTADOS-R    REDEFINES  TAB-ESTADOS.                  
              07  WS-CAJUGUDU  OCCURS 27 TIMES                          
                               ASCENDING KEY SIGLA-ESTADO                  
                               INDEXED BY IX-TAB.                       
                  10  SIGLA-ESTADO   PIC X(002).                              
                  10  NOME-ESTADO    PIC X(019).  
                            
       01  WS-AUXILIARES.                                               
           05 NAO-ACHOU-NADA        PIC 9(003) VALUE ZEROES.       
           05 WS-SIGLA-ESTADO       PIC X(002) VALUE ZEROES.       
           05 VARIAVEL              PIC X(019) VALUE SPACES. 
           05 WS-X                  PIC 9(002) VALUE ZEROES. 

      *-----------------------------------------------------------------
       PROCEDURE DIVISION. 
      *-----------------------------------------------------------------

           MOVE ZEROES TO NAO-ACHOU-NADA                                
           MOVE "DF" TO WS-SIGLA-ESTADO
           
           SEARCH ALL WS-CAJUGUDU                                        
                  AT END                                                
                     MOVE 1 TO NAO-ACHOU-NADA    
                WHEN SIGLA-ESTADO (IX-TAB) EQUAL WS-SIGLA-ESTADO 
                     MOVE NOME-ESTADO (IX-TAB) TO VARIAVEL                           
           END-SEARCH                                                   

           IF  NAO-ACHOU-NADA EQUAL 0
               DISPLAY "Achou " WS-SIGLA-ESTADO " Nome do Estado: " VARIAVEL 
           ELSE
               DISPLAY "Não achou - Sigla do Estado - "  WS-SIGLA-ESTADO
           END-IF. 

	   STOP RUN.

           
           Não achou - Sigla do Estado - DF
           MOVE "ES" TO WS-SIGLA-ESTADO
           Não achou - Sigla do Estado - ES
           MOVE "PE" TO WS-SIGLA-ESTADO
           Não achou - Sigla do Estado - PE


           Nota: Somente achou esses Estados (AM e PB) porque estão no inicio da tabela, na parte ordenada.

           MOVE "AM" TO WS-SIGLA-ESTADO
           Achou AM Nome do Estado: AMAZONAS

           MOVE "PB" TO WS-SIGLA-ESTADO
           Achou PB Nome do Estado: PARAIBA