Test de la macro %m_utl_chk_func_exist pour vérifier l'existence de fonctions

ATTENTION : Ce contenu est DÉSACTIVÉ. Il est invisible pour les visiteurs.
Niveau de difficulté
Débutant
Publié le :
Le script démontre l'utilisation de la macro %m_utl_chk_func_exist à travers plusieurs exemples. Il commence par afficher l'aide de la macro. Ensuite, il prépare l'environnement en définissant une bibliothèque de fonctions avec l'option 'cmplib'. Une fonction nommée 'year_of_birth' est créée et compilée à l'aide de PROC FCMP. Finalement, le script exécute trois tests : deux vérifiant des fonctions qui n'existent pas ('Day_of_Birth', 'Month_of_Birth') et un vérifiant la fonction existante ('Year_of_Birth'). Les résultats (0 pour non trouvé, 1 pour trouvé) sont stockés dans des macro-variables et imprimés dans le journal SAS© pour vérification.
Analyse des données

Type : CREATION_INTERNE


Le script ne lit aucune donnée externe. Il crée une fonction personnalisée ('year_of_birth') à l'aide de la procédure PROC FCMP, qui est ensuite utilisée comme cible pour les tests.

1 Bloc de code
MACRO
Explication :
Appelle la macro %m_utl_chk_func_exist avec le paramètre '?' pour afficher ses informations d'aide et sa documentation dans le journal SAS.
Copié !
1%* Example 1: Show help information: ;
2%m_utl_chk_func_exist(?)
2 Bloc de code
OPTIONS
Explication :
Définit le chemin de recherche pour les fonctions compilées par l'utilisateur. SAS recherchera les fonctions dans la bibliothèque 'WORK.functs'.
Copié !
1%* For the next examples create a function library and functions: ;
2options cmplib=WORK.functs;
3 
3 Bloc de code
PROC FCMP Data
Explication :
Utilise la procédure FCMP pour créer une nouvelle fonction. La fonction 'year_of_birth' calcule l'année de naissance en soustrayant l'âge de l'année actuelle. Elle est compilée et stockée dans le catalogue 'WORK.functs.examples'.
Copié !
1PROC FCMP outlib=WORK.functs.examples;
2 function year_of_birth(age);
3 birth_year = year(date())-age;
4 return(birth_year);
5 endsub;
6QUIT;
4 Bloc de code
MACRO
Explication :
Exécute la macro %m_utl_chk_func_exist pour vérifier si la fonction 'Day_of_Birth' existe dans 'WORK.functs'. Le résultat (0, car elle n'existe pas) est affecté à la macro-variable 'function_exist', puis sa valeur est affichée dans le journal.
Copié !
1%* Example 2: check IF the function Day_of_Birth exists (RESULT=0): ;
2%let function_exist =
3 %m_utl_chk_func_exist(
4 fname = Day_of_Birth
5 , flib = WORK.functs
6 , debug = Y
7 );
8 
9%put &=function_exist.;
5 Bloc de code
MACRO
Explication :
Vérifie l'existence de la fonction 'Month_of_birth'. Le résultat (0) est stocké dans une macro-variable globale nommée 'func_exist' (spécifiée par 'mvar_match'). Sa valeur est ensuite affichée dans le journal.
Copié !
1%* Example 3: check IF the function Month_of_Birth exists (RESULT=0): ;
2%m_utl_chk_func_exist(
3 fname = Month_of_birth
4 , flib = WORK.functs
5 , global_flg = Y
6 , mvar_match = func_exist
7 , debug = Y
8 );
9 
10%put &=func_exist.;
6 Bloc de code
MACRO
Explication :
Vérifie l'existence de la fonction 'Year_of_birth' (précédemment créée). Le résultat (1, car elle existe) est stocké dans la macro-variable globale 'func_exist' et sa valeur est affichée dans le journal.
Copié !
1%* Example 4: check IF the function Year_of_Birth exists (RESULT=1): ;
2%m_utl_chk_func_exist(
3 function = Year_of_birth
4 , library = WORK.functs
5 , global_flg = Y
6 , mvar_match = func_exist
7 , debug = Y
8 );
9 
10%put &=func_exist.;
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 2008-2025 Paul Alexander Canals y Trocha