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
ouNATIONAL
). -
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 deliteral-1
eliteral-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:
-
TALLYING: Conta e incrementa um campo numérico.
-
REPLACING: Substitui ocorrências por novos valores.
-
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.