quinta-feira, 28 de julho de 2016

Convertendo String - Upper ou Lower Case

Olá!

Para não ter problemas de case sensitive ao realizar comparações de variáveis alpha "PIC X(nnn)", é uma boa prática transformar as strings das variáveis em caixa alta ou baixa (maiúscula ou minuscula).

  • O comando FUNCTION UPPER-CASE (variável), transforma todo conteúdo de uma variável para maiúscula. 
  • E o comando FUNCTION LOWER-CASE (variável), transforma todo conteúdo de uma variável para minuscula. 

Exemplo da utilização desses comandos:
Neste exemplo será utilizado duas variáveis uma com um texto contante, e outra para armazenar a simulação de um texto enviado para a entrada do programa, segue a declaração das variáveis:

      * -- VARIAVEIS TEXTOS
       77 GDA-TX-EXEMPLO                PIC  X(015) VALUE '-FELIPE-TESTES-'.
       77 GDA-TX-ENTRADA                PIC  X(015) VALUE SPACES.

Movimentação do texto de entrada com letras maiúsculas e minusculas:
      * -- MOVIMENTA O TEXTO PARA SIMULAR DADOS DE ENTRADA
           MOVE '-FeliPe-tEsTes-'       TO GDA-TX-ENTRADA.

Agora com o comando UPPER-CASE para converter todos caracteres para maiúsculo, é realizada a verificação de igualdade:
      * -- VERIFICA SE O TEXTO DE ENTRADA == TEXTO EXEMPLO
             IF (FUNCTION UPPER-CASE(GDA-TX-ENTRADA)) NOT EQUAL
                (FUNCTION UPPER-CASE(GDA-TX-EXEMPLO))
                     PERFORM 999001-ERRO-01
             END-IF.

Ou seja, deste modo será comparado:
IF '-FELIPE-TESTES-' NOT EQUAL 
   '-FELIPE-TESTES-'
   PERFORM 999001-ERRO-01
END-IF.


De modo que a conversão seja realizada para que a string fique com o texto em caixa baixa, utilize conforme:

FUNCTION LOWER-CASE(texto)


Exemplo:

      * -- MOVIMENTA/CONVERTE O TEXTO PARA CAIXA BAIXA
           MOVE FUNCTION LOWER-CASE(GDA-TX-ENTRADA) TO GDA-TX-MINUSCULA.


Logo abaixo há o código COBOL respectivo aos exemplos acima:

Convertendo String Upper ou Lower Case Felipe Barbosa Ferreira



Então, para realizar a comparação entre strings (alpha / texto), é bom ter em mente:

1 - Variáveis alpha armazenam espaços em branco à direita, se não totalmente preenchidas.
      Exemplo:
       77 GDA-TX-TESTE                  PIC  X(010) VALUE SPACES.
           MOVE 'Felipe'                TO GDA-TX-TESTE.
           DISPLAY GDA-TX-TESTE.
           Resultado = 'Felipe    '.


2 - Para não ter problemas com Case Sensitive, transforme a string das variáveis que estão sendo comparadas para maiúscula ou minuscula.



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

Até o próximo post!

Nenhum comentário:

Postar um comentário