La macro `mp_appendfile` permet de fusionner le contenu d'un ou plusieurs fichiers spécifiés par leurs 'filerefs' (références de fichier) à la fin d'un fichier de base existant, également désigné par un 'fileref'. L'opération est effectuée en mode binaire, garantissant la compatibilité avec tout type de fichier. L'utilisateur est responsable de l'ajout des retours chariot si nécessaire dans les fichiers à concaténer. La macro inclut des validations pour s'assurer que les 'filerefs' de base et d'ajout sont bien fournis. Elle itère sur chaque 'fileref' à ajouter et utilise la macro `%mp_binarycopy` pour effectuer la copie, incluant une vérification du code de retour système (`&syscc`) après chaque opération.
Analyse des données
Type : CREATION_INTERNE
La macro ne dépend pas de jeux de données SAS prédéfinis ou de fichiers externes non gérés par le script. Elle opère sur des références de fichiers ('filerefs') qui peuvent être associées à des fichiers temporaires ou à des fichiers créés et gérés par l'utilisateur au sein de la session SAS. L'exemple d'utilisation montre la création de fichiers temporaires ('temp') à l'aide de DATA _NULL_ et d'instructions FILENAME, indiquant que les données source sont contrôlées et/ou générées dans l'environnement SAS.
1 Bloc de code
Définition de macro et validation des paramètres
Explication : Ce bloc initialise la macro `mp_appendfile` et définit ses deux paramètres d'entrée, `baseref` (le fileref du fichier de destination) et `appendrefs` (une liste de filerefs de fichiers à ajouter). Il intègre des appels à la macro `%mp_abort` pour valider si ces paramètres sont bien fournis par l'utilisateur. Si un paramètre obligatoire est manquant, la macro `%mp_abort` est déclenchée pour interrompre l'exécution et afficher un message d'erreur clair.
Copié !
%macro mp_appendfile(
baseref=0,
appendrefs=0
)/*/STORE SOURCE*/;
%mp_abort(iftrue= (&baseref=0)
,mac=&sysmacroname
,msg=%str(Baseref NOT specified!)
)
%mp_abort(iftrue= (&appendrefs=0)
,mac=&sysmacroname
,msg=%str(Appendrefs NOT specified!)
)
1
%macro mp_appendfile(
2
baseref=0,
3
appendrefs=0
4
)/*/STORE SOURCE*/;
5
6
%mp_abort(iftrue= (&baseref=0)
7
,mac=&sysmacroname
8
,msg=%str(Baseref NOT specified!)
9
)
10
%mp_abort(iftrue= (&appendrefs=0)
11
,mac=&sysmacroname
12
,msg=%str(Appendrefs NOT specified!)
13
)
2 Bloc de code
Boucle d'ajout de fichiers
Explication : Ce bloc contient la logique principale de la macro. Une boucle est utilisée pour itérer sur chaque 'fileref' spécifié dans le paramètre `appendrefs`. À chaque itération, une vérification du code de retour système (`&syscc`) est effectuée via `%mp_abort` pour s'assurer qu'aucune erreur n'est survenue lors de l'opération précédente. Ensuite, la macro `%mp_binarycopy` est appelée pour copier le contenu du fichier source actuel (`inref`) vers le fichier de base (`outref`) en utilisant le mode `APPEND`, ce qui permet d'ajouter le contenu à la fin du fichier existant.
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-2006 Rodney Sparapani; Allan Bowe, source: https://github.com/sasjs/core
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.