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