*-----------------------------------------------------------------
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
|