Menu

COBOL - PROCURAR Statement


  • SEARCH é uma busca serial, que é usada para encontrar elementos dentro da tabela.

  • Ele pode ser usado para dados classificados e não classificados dentro da tabela.

  • A tabela precisa ser definida com uma fase de índice.

  • Quando utilizamos a função de busca, a função inicia com a configuração atual do índice e segue até o final da tabela. O valor inicial do índice é deixado à escolha do programador. Podemos definir o valor do índice imediatamente antes do início da pesquisa usando a palavra-chave SET. O valor inicial do índice é deixado à escolha do programador. Podemos definir o valor do índice imediatamente antes do início da pesquisa usando a palavra-chave SET.

  • Se o elemento procurado não for encontrado, então o índice é incrementado automaticamente em 1 e continua até o final da tabela.

SINTAXE:

SEARCH identifier [VARYING {identifier-2/index-name}]
 [AT END statement]
 [WHEN condition statements]
[END-SEARCH]

Exemplo:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TABLE.
   05 WS-A PIC 9(1) OCCURS 10 TIMES INDEXED BY I.
01 WS-SRCH PIC 9(1) VALUE '0'.

PROCEDURE DIVISION.
   MOVE '1234567890' TO WS-TABLE.
   SET I TO 1.
   SEARCH WS-A
      AT END DISPLAY 'ZERO NOT FOUND IN TABLE'
      WHEN WS-A(I) = WS-SRCH
      DISPLAY 'NUMBER ZERO FOUND IN TABLE'
   END-SEARCH.
   STOP RUN.

Quando você compila e executa o programa acima, ele produz o seguinte resultado -

Resultado:

A saída do programa acima é "NUMBER ZERO FOUND IN TABLE". Porque '0' está presente na tabela WS-TABLE.

Se '0' não estiver presente na tabela WS-TABLE, a saída do programa acima será "ZERO NOT FOUND IN TABLE".

Veremos o formato 2 no próximo capítulo..