A instrução INSPECT no COBOL é usada para examinar, contar, substituir ou converter caracteres dentro de um item de dados. É uma poderosa ferramenta para manipulação de strings.

📌 Para que serve

  • Contar ocorrências de caracteres.

  • Substituir caracteres específicos por outros.

  • Fazer conversões de valores dentro de campos.

  • Limpar campos com padrões definidos (ex: substituir espaços por zeros).

🧾 Sintaxe geral

Formato 1 – Contagem de caracteres (TALLYING)

INSPECT identificador-1 TALLYING identificador-2
    FOR ALL literal-1

Formato 2 – Substituição de caracteres (REPLACING)

INSPECT identificador-1 REPLACING
    ALL literal-1 BY literal-2

Formato 3 – TALLYING + REPLACING

INSPECT identificador-1 TALLYING identificador-2
    FOR ALL literal-1
    REPLACING ALL literal-1 BY literal-2

Formato 4 – Conversão de caracteres (CONVERTING)

INSPECT identificador-1 CONVERTING literal-1 TO literal-2

✅ Exemplos práticos

Contar ocorrências

INSPECT NOME TALLYING QTDE-A FOR ALL "A".

Conta quantas vezes a letra "A" aparece no campo NOME.

Substituir espaços por zeros

INSPECT CAMPO-TEXTO REPLACING ALL SPACE BY "0".

Contar e substituir ao mesmo tempo

INSPECT TEXTO TALLYING CONTADOR FOR ALL " "
                 REPLACING ALL " " BY "-".

Converter letras minúsculas em maiúsculas

INSPECT CAMPO CONVERTING "abcdefghijklmnopqrstuvwxyz"
                TO       "ABCDEFGHIJKLMNOPQRSTUVWXYZ".

🧠 Palavras-chave importantes

Palavra-chave Função
TALLYING Conta ocorrências de caracteres.
REPLACING Substitui caracteres.
CONVERTING Troca um conjunto de caracteres por outro equivalente.
ALL Aplica a contagem ou substituição a todas as ocorrências.
LEADING Aplica apenas às ocorrências contíguas do início.
FIRST Substitui apenas a primeira ocorrência.
BEFORE / AFTER Limita a área a ser inspecionada.
INITIAL Delimita apenas a primeira ocorrência do delimitador.

⚠️ Regras e restrições

  • Todos os identificadores devem ter o mesmo uso (DISPLAY, DISPLAY-1 ou NATIONAL).

  • Não pode ser usado com campos de data com janelas.

  • identifier-2 (campo contador) deve ser numérico inteiro.

  • BEFORE / AFTER permitem limitar a área onde a contagem ou substituição ocorre.

  • Em CONVERTING, o tamanho de literal-1 e literal-2 deve ser igual.

📍 Fluxo de execução

A execução percorre o campo (da esquerda para a direita) comparando os caracteres com base nas instruções definidas:

  1. TALLYING: Conta e incrementa um campo numérico.

  2. REPLACING: Substitui ocorrências por novos valores.

  3. CONVERTING: Mapeia caractere por caractere de um conjunto para outro.

O processo é iterativo e respeita a ordem dos comandos dentro da instrução.

 

✅ Conclusão

A instrução INSPECT é um recurso extremamente versátil no COBOL para processamento de strings. Com ela é possível contar, limpar, substituir ou converter conteúdos de forma eficiente, evitando laços desnecessários. Dominar INSPECT é essencial para trabalhar com campos textuais ou realizar validações e padronizações de dados no seu programa COBOL.