quarta-feira, 10 de fevereiro de 2016

Encontrar tamanho de uma String - Inspect Reverse

Olá!

Com o comando INSPECT é possível percorrer cada caractere de uma string, e assim analisar ou manipular a string. Também com este comando podemos descobrir o tamanho string dentro uma variável.

Porque descobrir o tamanho da string?

Imaginamos que no banco de dados se tenha um campo TEXTO VARCHAR (050), e no COBOL a variável que armazena o valor que irá para o DB é MENSAGEM PIC X (050). Se a movimentação for realizada de forma simples:

MOVE MENSAGEM TO VARIAVEL-DB-TEXTO.

Todos os 50 bytes serão utilizados todas as vezes, e isso não será útil (o melhor) para o DB. Pois, mesmo que a MENSAGEM tenha o valor igual a “Teste               ” que somente ocupa 5 bytes no DB, a movimentação acima irá considerar até os espaços em branco (posições vazias no final da mensagem) totalizando 50 bytes para o BD.

Como movimentar somente o conteúdo da string?

MOVE MENSAGEM(1:TAM-STRING) TO VARIAVEL-DB-TEXTO.

Com a movimentação acima é considerado somente o conteúdo da 1ª posição até o final da string, de modo que o final da string é o tamanho dela, ou seja, “Teste               ” tem o tamanho 5, então o final da string é na posição cinco, então TAM-STRING = 5.

Para encontrar o tamanho da string, será nos seguintes passos:

  •  Percorrer a string do FINAL para o começo, até que seja encontrado algum caractere;
  •  Com a quantidade de posições vazias encontrada, subtrair do tamanho total da variável;
  •  Movimentar o conteúdo fixado com os indicadores (1:TAM-STRING).
Sem mais delongas vamos ao código:


















No código apresentado, a variável TEXTO está com o tamanho PIC X (050), e o conteúdo desta igual a 
“Teste de encontrar tamanho STRING           ” com tamanho 33.
Sendo que o resultado é MOVE TEXTO (1:33) TO DB. Considerando somente o conteúdo da variável.


Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.

Até o próximo post!

Nenhum comentário:

Postar um comentário