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.
STRREP (inlength, instring, searchlength, searchstring, replength, repstring, outlength, output)
où :
Numérique
est le nombre de caractères dans la chaîne source.
Alphanumérique
est la chaîne source.
Numérique
est le nombre de caractères que comporte la (plus courte) chaîne à remplacer.
Alphanumérique
est la chaîne de caractères à remplacer.
Numérique
est le nombre de caractères que comporte la chaîne de substitution. Doit être supérieur ou égal à zéro.
Alphanumérique
est la chaîne de remplacement (numérique). Ignoré si replength est zéro (0).
Numérique
est le nombre de caractères de la chaîne de substitution. Doit être supérieur ou égal à zéro.
Alphanumérique
est la chaîne de sortie résultante après tous les remplacements et les remplissages.
La longueur maximale de chaîne est 4095.
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 |