Pour optimiser votre macro revrs et eviter que la resolution du texte n echoue si la chaine contient des caracteres speciaux comme des virgules ou des parentheses, utilisez systematiquement la fonction %qsubstr au lieu de %substr et assurez-vous de placer &nstring a l exterieur de la boucle do pour ne retourner que le resultat final au lieu de chaque etape de construction dans la log.
Le code définit une macro nommée 'revrs' qui utilise une boucle itérative pour inverser l'ordre des caractères d'une chaîne d'entrée. Il définit également une macro 'test' pour fournir une chaîne d'exemple. Le script exécute ensuite des commandes %PUT pour afficher le résultat de l'inversion ainsi que la concaténation de deux variables globales définies dans le script.
Analyse des données
Type : CREATION_INTERNE
Le script ne manipule aucune table de données SAS. Il opère uniquement sur des variables macro et des chaînes de caractères.
1 Bloc de code
MACRO DEFINITION
Explication : Définition de la macro 'revrs'. Elle parcourt la chaîne d'entrée de la fin vers le début pour construire 'nstring'. Note : La présence de '&nstring' dans la boucle provoque l'affichage de la variable à chaque itération.
Explication : Définition d'une macro utilitaire 'test' qui renvoie simplement la chaîne 'Two words'.
Copié !
%macro test;
Two words
%mend test;
1
%macro test;
2
Two words
3
%mend test;
3 Bloc de code
%PUT
Explication : Exécution de la macro d'inversion sur le résultat de la macro 'test' concaténée à elle-même, et affichage du résultat dans la log.
Copié !
%put %nrstr(%test%test) - %revrs(%test%test);
1
%put %nrstr(%test%test) - %revrs(%test%test);
4 Bloc de code
%LET / %PUT
Explication : Initialisation de deux variables macro globales (wbh et ldh) et affichage de leur concaténation directe.
Copié !
%let wbh=A;
%let ldh=B;
%put &wbh&ldh;
1
%let wbh=A;
2
%let ldh=B;
3
4
%put &wbh&ldh;
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.