STRREP : Remplacer des chaînes de caractères

Comment :

Référence :

La fonction STRREP remplace toutes les instances d'une chaîne spécifiée au sein d'une champ source. Elle prend aussi en charge le remplacement par des chaînes null.


Haut de page

x
Syntaxe : Remplacer des chaînes de caractères
STRREP (inlength, instring, searchlength, searchstring, replength, repstring, outlength, output)

où :

inlength

Numérique

est le nombre de caractères dans la chaîne source.

instring

Alphanumérique

est la chaîne source.

searchlength

Numérique

est le nombre de caractères que comporte la (plus courte) chaîne à remplacer.

searchstring

Alphanumérique

est la chaîne de caractères à remplacer.

replength

Numérique

est le nombre de caractères que comporte la chaîne de substitution. Doit être supérieur ou égal à zéro.

repstring

Alphanumérique

est la chaîne de remplacement (numérique). Ignoré si replength est zéro (0).

outlength

Numérique

est le nombre de caractères de la chaîne de substitution. Doit être supérieur ou égal à zéro.

output

Alphanumérique

est la chaîne de sortie résultante après tous les remplacements et les remplissages.


Haut de page

x
Référence : Notes d'utilisation pour la fonction STRREP

La longueur maximale de chaîne est 4095.



Exemple : Remplacer les virgules et les signes Dollar

Dans l'exemple suivant, STRREP trouve et remplace les virgules et les signes Dollar qui apparaissent dans le champ CS_ALPHA, en remplaçant d'abord les virgules avec des chaînes null afin de produire CS_NOCOMMAS (supprimant les virgules) puis en remplaçant les signes Dollar ($) par (USD) dans la colonne CURR_SAL la plus à droite :

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

La sortie est :

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

WebFOCUS