Publié le :
Macro CREATION_INTERNE

Macro AHGscanReplace - Remplacement de segment de chaîne

Ce code est également disponible en : Deutsch English Español
La macro parcourt une chaîne d'entrée segmentée par un délimiteur (espace par défaut). Elle reconstruit la chaîne en remplaçant l'élément situé à l'index 'n' par la valeur fournie dans le paramètre 'to'. Le code dépend d'une macro externe nommée '%AHGcount' (vraisemblablement pour compter le nombre de mots) qui n'est pas incluse dans ce snippet.
Analyse des données

Type : CREATION_INTERNE


Le traitement est purement logique sur des chaînes de caractères passées en paramètres de la macro. Aucune table de données externe n'est lue.

1 Bloc de code
MACRO
Explication :
Définition de la macro. Elle initialise une boucle basée sur le nombre de mots (calculé par %AHGcount), construit une nouvelle chaîne 'outstr' en remplaçant le mot à l'index 'n', et retourne le résultat final sans le délimiteur initial.
Copié !
1%macro AHGscanReplace(str,n,to,dlm=%str( ));
2 %local i outstr;
3 %DO i=1 %to %AHGcount(&str,dlm=&dlm);
4 %IF &i ne &n %THEN %let outstr=&outstr&dlm%scan(&str,&i,&dlm);
5 %ELSE %let outstr=&outstr&dlm&to;
6 %END;
7 %substr(&outstr,2)
8%mend;
9/*%put %ahgscanReplace(ok @ ok @ ok, 2,no,dlm= @);*/
10/*%put %ahgscanReplace(ok ok ok, 1,no );*/
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.