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).