Publié le :
Macro CREATION_INTERNE

Macro d'extraction d'options de dataset

Ce code est également disponible en : Deutsch English Español
La macro `_option` a pour fonction d'analyser une chaîne de caractères passée en argument, supposée représenter un nom de dataset SAS© qui pourrait inclure des options entre parenthèses (ex: `ma_lib.ma_table(keep=var1)`). Son objectif est d'extraire et de renvoyer uniquement la sous-chaîne contenant ces options, sans inclure le nom du dataset. Si aucune parenthèse n'est détectée dans la chaîne, la macro ne retournera aucune valeur, agissant spécifiquement comme un extracteur ciblé.
Analyse des données

Type : CREATION_INTERNE


La macro n'interagit pas avec des tables SAS ni ne lit de données depuis des sources externes ou SASHELP. Elle opère exclusivement sur une chaîne de caractères fournie en argument, réalisant des manipulations textuelles internes pour produire une sous-chaîne. Les 'données' traitées sont donc l'argument textuel de la macro lui-même.

1 Bloc de code
Directives de logging
Explication :
Ce bloc contient des directives `%put` qui sont utilisées pour afficher des messages informatifs dans le log SAS. La première ligne confirme l'appel de la macro `_OPTION` avec une date d'exécution. La deuxième ligne affiche les informations de copyright de l'auteur. La troisième ligne (`%put;`) insère une ligne vide dans le log pour améliorer la lisibilité.
Copié !
1%put NOTE: You have called the macro _OPTION, 2004-03-29.;
2%put NOTE: Copyright (c) 2001-2004 Rodney Sparapani;
3%put;
4 
2 Bloc de code
MACRO `_option`
Explication :
Ce bloc définit la macro `_option` qui accepte un argument `arg1` (la chaîne de caractères à analyser). Une variable macro locale `i` est déclarée pour stocker la position de la première parenthèse ouvrante `(`. La fonction `%index` est utilisée pour trouver cette position. Si une parenthèse est trouvée (`%if &i %then`), la fonction `%substr` extrait la sous-chaîne qui commence juste après cette parenthèse ouvrante jusqu'à la fin de la chaîne. C'est cette sous-chaîne, censée contenir les options du dataset, qui est retournée par la macro.
Copié !
1%macro _option(arg1);
2 
3%local i;
4 
5%let i=%index(&arg1, %str(%());
6 
7%IF &i %THEN %substr(&arg1, &i+1, %LENGTH(%substr(&arg1, &i+1)));
8 
9%mend _option;
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 : Copyright (c) 2001-2004 Rodney Sparapani. Distribué sous les termes de la GNU General Public License, version 2 ou ultérieure, sans aucune garantie explicite ou implicite.