Instrução INSPECT
Autor: Luiz Francisco de Assis Borges | Publicado: 2011-11-04T00:25:00-02:00


A instrução INSPECT pode ser
usada para contar o número de ocorrências de um determinado caractere. Ela
também pode ser usada para substituir um caractere específico em um campo por
outro.

Formato 1 da Instrução INSPECT: Pode ser usado para realizar a
contagem do número de vezes que um determinado caractere aparece em um campo.

Exemplos:

1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Contar
quantos caracteres em branco existem em CAMPO-1:

INSPECT CAMPO-1 TALLYNG QTD-1
FOR ALL SPACES.

2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Contar
quantos caracteres existem antes do primeiro espaço em branco no CAMPO-2:

INSPECT CAMPO-2 TALLYNG QTD-2
FOR CHARACTERS BEFORE INITIAL SPACE.

3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Contar
quantos caracteres existem entre zeros no CAMPO-3:

INSPECT CAMPO-3 TALLYNG QTD-3
FOR CHARACTERS LEADING ZEROS.

4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Contar
quantos caracteres existem no CAMPO-4 após o primeiro espaço:

INSPECT CAMPO-2 TALLYNG QTD-4
FOR CHARACTERS AFTER INITIAL SPACE.

Nos exemplos acima, as contagens
obtidas são colocadas, respectivamente, em QTD-1, QTD-2, QTD-3 e QTD-4, que
normalmente são definidos como itens elementares na WORKING-STORAGE SECTION.
Esses campos de contagem NÃO são inicializados automaticamente com o valor ZERO
quando a instrução INSPECT é executada. Sendo assim, o programador deve mover
ZEROS para o campo de contagem antes de cada instrução INSPECT.

Formato 2 da Instrução INSPECT: Pode ser usado para substituir
ocorrências especificadas de um determinado caractere por outro caractere. Ela
não contabilizará o número de ocorrências de qualquer caractere.

Exemplos:

1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Substituir
– (traço) por / (barra) em um campo que representa uma data:

INSPECT DATA-IN REPLACING ALL '-' BY '/'.

Antes: 10-05-2011 Depois:
10/05/2011

2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Substituir
os caracteres por 3 antes do primeiro caractere 2 em um campo numérico.

INSPECT CAMPO-A REPLACING
CHARACTERS BY '3' BEFORE INITIAL '2'.

Antes: 112111 Depois:
332111

Nenhuma operação de contagem é
realizada no formato 2. Ao usar esse formato, aplicam-se as regras para
inserção de caracteres. Admita, por exemplo, que estamos inspecionando um campo
numérico que tenha cláusula PICTURE de 9’s. Não podemos substituir um dígito ‘5’
por um 'A' porque 'A' não é um caractere numérico.

Outro formato para a instrução
INSPECT é útil para fazer conversões.

Exemplo:

Um uso importante da instrução
INSPECT é para converter letras maiúsculas em minúsculas.

Na WORKING-STORAGE SECTION,
declare os seguintes campos:

01
&nbsp;WS-MAIUSCULAS PIC X(026) VALUE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.

01&nbsp; WS-MINUSCULAS PIC X(026) VALUE 'abcdefghijklmnopqrstuvwxyz'.

Suponhamos que exista um CAMPO-1 com
valor 'LUIZ PREZA'

Para converter o conteúdo desse campo
de MAIÚSCULO para minúsculo, basta utilizar a instrução INSPECT da seguinte
forma:

INSPECT
CAMPO-1 CONVERTING WS-MAIUSCULAS TO WS-MINUSCULAS.

O resultado obtido seria: CAMPO-1 com
valor&nbsp;'luiz preza'.

Para converter o conteúdo desse campo
de minúsculo para MAIÚSCULO, basta utilizar a instrução INSPECT da seguinte
forma:

INSPECT
CAMPO-1 CONVERTING WS-MINUSCULAS TO WS-MAIUSCULAS.

O resultado obtido seria: CAMPO-1 com
valor 'LUIZ PREZA'.

Espero ter ajudado.

Até a próxima.