Publié le :
Macro CREATION_INTERNE

Macro de test de chemin

Ce code est également disponible en : Deutsch English Español
Cette macro, nommée 'testit', est conçue pour illustrer le comportement de la fonction %SYSFUNC(DEQUOTE) lors du traitement de paramètres de macro qui peuvent contenir des guillemets. Elle utilise une étape DATA _NULL_ pour afficher la valeur du paramètre 'path' dans le log SAS© après avoir supprimé les éventuels guillemets (simples ou doubles). Les appels successifs à la macro 'testit' démontrent comment SAS© gère les chaînes de caractères, qu'elles soient passées brutes, entre guillemets simples ou entre guillemets doubles. Ce script est utile pour comprendre la manipulation de chaînes de caractères dans l'environnement macro SAS©.
Analyse des données

Type : CREATION_INTERNE


Le script ne traite pas de données SAS existantes ni n'en crée de persistantes. Il manipule et affiche une chaîne de caractères littérale passée en paramètre de macro, utilisant uniquement la console (log) pour la sortie.

1 Bloc de code
MACRO DEFINITION & DATA STEP
Explication :
Ce bloc de code définit et appelle la macro `testit`. La macro prend un paramètre `path`. À l'intérieur de la macro, une étape `DATA _NULL_` est utilisée pour écrire directement dans le log SAS. La fonction `%SYSFUNC(DEQUOTE(&path))` est cruciale ici : elle supprime les guillemets (simples ou doubles) de la valeur passée au paramètre `path` avant que celle-ci ne soit affichée. Les trois appels subséquents à `%testit` montrent comment la fonction `DEQUOTE` gère différentes syntaxes de passage de chaîne (sans guillemets, avec guillemets simples, avec guillemets doubles), assurant que le résultat affiché dans le log est toujours le chemin sans guillemets.
Copié !
1%macro testit(path=);
2DATA _null_;
3put "%sysfunc(dequote(&path))";
4RUN;
5%mend testit;
6 
7%testit(path=D:\Projects\);
8%testit(path='D:\Projects\');
9%testit(path="D:\Projects\");
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.