Publié le :
Macro CREATION_INTERNE

Macro doallitem - Exécution itérative de code

Ce code est également disponible en : Deutsch English Español
Cette macro accepte une liste d'éléments séparés par des espaces et un fragment de code SAS© (encadré par des guillemets simples). Elle itère sur la liste et exécute le code pour chaque élément, en rendant l'élément courant disponible via la macro-variable `&item`. Le script inclut une vérification de syntaxe pour les guillemets. Note : Elle dépend d'une sous-macro externe `%words` (non fournie dans ce code).
Analyse des données

Type : CREATION_INTERNE


Le script définit uniquement une logique macro et ne lit ni ne crée de tables de données par lui-même.

1 Bloc de code
MACRO
Explication :
Affiche un message dans la log, puis définit la macro `doallitem`. La macro valide que le paramètre `code` est entre guillemets, boucle de 1 au nombre de mots dans `__dolist` (via `%words`), extrait chaque mot dans `&item` et exécute le code passé en paramètre.
Copié !
1%put MACRO CALLED: doallitem v1.1;
2 
3%macro doallitem(__dolist,code);
4 %local i item err;
5 %let err=ERR%str(OR);
6 %IF %qsubstr(&code,1,1) NE %str(%')
7 or %qsubstr(&code,%length(&code),1) NE %str(%') %THEN
8 %put &err: (doallitem) Code supplied to second parameter must be enclosed in single quotes;
9 %ELSE %DO i=1 %to %words(&__dolist);
10 %let item=%scan(&__dolist,&i,%str( ));
11 %substr(&code,2,%LENGTH(&code)-2)
12 %END;
13%mend doallitem;
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.
Informations de Copyright : Roland Rashleigh-Berry - Public domain software


Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« La macro %doallitem est un excellent exemple de méta-programmation visant à réduire la redondance du code (principe DRY - Don't Repeat Yourself). Sa force réside dans sa capacité à traiter un fragment de code SAS comme une donnée textuelle, pour ensuite l'exécuter de manière répétée sur une liste d'éléments. Cette approche est idéale pour automatiser des tâches répétitives, comme l'importation d'une série de fichiers ou la génération de statistiques sur plusieurs variables. La sécurité est ici renforcée par une vérification rigoureuse des guillemets simples, garantissant que le code passé en second paramètre est correctement encapsulé pour éviter toute exécution prématurée par le processeur macro. »