Publié le :
Macro CREATION_INTERNE

Macro AHGwords - Génération de listes par substitution

Ce code est également disponible en : Deutsch English Español
La macro `AHGwords` prend un modèle de mot (`word`) et un itérateur (`n`). Si le modèle ne contient pas le caractère '@', celui-ci est ajouté à la fin. La macro détecte si `n` est un scalaire (via la macro externe `%AHGcount`) ou une liste. Si c'est un scalaire, elle génère une séquence numérique à partir de la `base` définie. Si c'est une liste, elle itère sur chaque élément de `n` pour effectuer la substitution. Le résultat est inséré directement dans le flux de code (génération de texte).
Analyse des données

Type : CREATION_INTERNE


Le traitement est purement macro-textuel et ne manipule aucune table SAS.

1 Bloc de code
MACRO
Explication :
Définition de la macro. Elle prépare le modèle de mot, détermine le type d'itération (numérique ou liste) en appelant `%AHGcount`, puis exécute une boucle `%do` pour générer les chaînes modifiées via `tranwrd`.
Copié !
1%macro AHGwords(word,n,base=1);
2%local AHG4I;
3%IF not %index(&word, @) %THEN %let word=&word @;
4%IF %AHGcount(&n)=1 %THEN
5 %DO AHG4I=%eval(&base) %to %eval(&n+&base-1);
6 %sysfunc(tranwrd(&word, @,&AHG4i))
7 %END;
8%ELSE
9 %DO AHG4i=1 %to %AHGcount(&n) ;
10 %sysfunc(tranwrd(&word, @,%scan(&n,&AHG4i)))
11 %END;
12 
13%mend;
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.