STRREP: Como Substituir Strings de Caracteres

Como:

Referência:

STRREP substitui todos os exemplos de uma string especificada dentro de uma string fonte. Também suporta a substituição por strings nulas.


Topo da página

x
Sintaxe: Como Substituir strings de caracteres
STRREP (inlength, instring, searchlength, searchstring, replength, repstring, outlength, output)

onde:

inlength

Numérico

É o número de caracteres em string fonte.

instring

Alfanumérico

É a string fonte.

searchlength

Numérico

É o número de caracteres na (comprimento mais curto) string a ser substituída.

searchstring

Alfanumérico

É a string de caracteres a ser substituída.

replength

Numérico

É o número de caracteres na string de substituição. Deve ser zero (0) ou maior.

repstring

Alfanumérico

É a string de substituição (alfanumérica). Ignorado se o tamanho da substituição for zero (0).

outlength

Numérico

É o número de caracteres na string de saída resultante. Deve ser 1 ou maior.

saída

Alfanumérico

É a string de saída resultante após todas as substituições e preenchimentos.


Topo da página

x
Referência: Observações sobre o Uso para a Função STRREP

O comprimento máximo da string é de 4095.



Exemplo: Como Substituir Vírgulas e Cifrões

No exemplo a seguir, STRREP localiza e substitui vírgulas e cifrões que aparecem no campo CS_ALPHA, primeiramente substituindo vírgulas por strings nulas para produzir CS_NOCOMMAS (removendo as vírgulas) e, em seguida, removendo os cifrões ($) por (USD) na coluna CURR_SAL da extrema direita:

TABLE FILE EMPLOYEE
SUM CURR_SAL NOPRINT
COMPUTE CS_ALPHA/A15=FTOA(CURR_SAL,'(D12.2M)',CS_ALPHA);
        CS_NOCOMMAS/A14=STRREP(15,CS_ALPHA,1,',',0,'X',14,CS_NOCOMMAS);
        CS_USD/A17=STRREP(14,CS_NOCOMMAS,1,'$',4,'USD ',17,CS_USD);
        NOPRINT
        CS_USD/R AS CURR_SAL
BY LAST_NAME
END

A saída é:

LAST_NAME   CS_ALPHA             CS_NOCOMMAS                 CURR_SAL
---------   --------             -----------        -----------------
BANNING          $29,700.00           $29700.00          USD 29700.00
BLACKWOOD        $21,780.00           $21780.00          USD 21780.00
CROSS            $27,062.00           $27062.00          USD 27062.00
GREENSPAN         $9,000.00            $9000.00          USD  9000.00
IRVING           $26,862.00           $26862.00          USD 26862.00
JONES            $18,480.00           $18480.00          USD 18480.00
MCCOY            $18,480.00           $18480.00          USD 18480.00
MCKNIGHT         $16,100.00           $16100.00          USD 16100.00
ROMANS           $21,120.00           $21120.00          USD 21120.00
SMITH            $22,700.00           $22700.00          USD 22700.00
STEVENS          $11,000.00           $11000.00          USD 11000.00

Information Builders