A declaração TRANSLATE converte caracteres em maiúsculas ou minúsculas, ou usa regras de substituição para converter todas as ocorrências de um caractere para outro caractere.
Sintaxe:
TRANSLATE <c> TO UPPER CASE.
TRANSLATE <c> TO LOWER CASE.
TRANSLATE <c> USING <r>.
O comando PACK serve para retirar os 0 (zeros) a esquerda de uma variável, trocando por espaços em branco.
Sintaxe: PACK variável TO variável.
A declaração CONDENSE exclui espaços redundantes de uma string.
Sintaxe: CONDENSE variável.
STRLEN retorna o comprimento de uma string até o último caractere que não é um espaço.
Sintaxe: COMPUTE n = STRLEN( c ).
SUBSTRING é um instrução usada em varias linguagens de programação, o método extrai os caracteres de uma cadeia, entre dois índices especificados, e retorna o novo sub string. Em ABAP a palavra chave SUBSTRING não é necessária, usa se direto a variável literal.
Sintaxe: LITERAL+posição_inicial(posição_final).
Exemplo:
Neste exemplo usamos vários métodos para a manipulação de strings:
Abap
*&---------------------------------------------------------------------*
*& Report ZTRADUCAO
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Manipulação de Strin
*& Translate, Pack, Condense, Compute Strlen, Substring
*&---------------------------------------------------------------------*
REPORT ZTRADUCAO.
DATA : variavel TYPE c LENGTH 50,
numeros TYPE c LENGTH 30 VALUE '0000446577',
tamanho TYPE i.
variavel = 'desenvolvimento aberto'.
TRANSLATE variavel TO UPPER CASE.
WRITE : / 'Caixa Alta: ',variavel.
TRANSLATE variavel TO LOWER CASE.
WRITE : / 'Caixa Baixa:',variavel.
variavel = 'Abab-BaAa X bababa Y bdba Z bAbaB'.
WRITE : / , / 'Troca: ', variavel.
* troca B-A, b-a, A-b, a-b
TRANSLATE variavel USING 'BAbaABab'.
WRITE : / 'Troca: ', variavel.
* Retira os zeros de uma variavel
WRITE : / , / 'Numeros: ', numeros.
PACK numeros TO numeros.
* Retira os espaços em branco que ficou no lugar do zeros
CONDENSE numeros.
COMPUTE tamanho = STRLEN( numeros ).
WRITE : / 'Numeros: ', numeros, 'Contém:',tamanho,'caracteres'.
* Recorta pedaço de uma variavel
*AbertoDesenvolvimento
*012345678901234567890 = 21 caracteres
variavel = 'AbertoDesenvolvimento'.
WRITE : / , / 'Substring de ', variavel, ':'.
WRITE: / variavel+6(15) , variavel+0(6).

