Publié le :
Macro EXTERNE

Macro dsc_echofile_tolog

Ce code est également disponible en : Deutsch English Español
Cette macro prend en entrée une liste de filerefs séparés par des espaces. Elle vérifie pour chaque fileref s'il est valide et associé à un fichier existant. Si c'est le cas, elle utilise une étape DATA _NULL_ pour lire le fichier ligne par ligne (avec une longueur maximale de 32767 caractères) et écrire le contenu dans la log SAS©. Elle est principalement utilisée pour le débogage ou pour conserver une trace de fichiers de configuration/logs externes dans le rapport d'exécution SAS©.
Analyse des données

Type : EXTERNE


La macro lit des données provenant de fichiers externes identifiés par les filerefs passés en paramètre (argument 'fileRefs').

1 Bloc de code
DATA STEP
Explication :
Définition de la macro. Elle boucle sur la liste des 'fileRefs', vérifie leur existence via %sysfunc(fileref(...)), puis exécute un DATA STEP _NULL_ pour lire le contenu du fichier (infile) et l'écrire dans la log (put).
Copié !
1%macro dsc_echofile_tolog(fileRefs=);
2 
3 /* echo the file contents to log if file exists */
4 %IF %LENGTH(&fileRefs) > 0 %THEN
5 %DO;
6 %let i=1;
7 %DO %while (%scan(&fileRefs,&i,' ') ne );
8 %let fileRef=%scan(&fileRefs,&i);
9 /* if the fileref & its associated file exists? */
10 %IF %sysfunc(fileref(&fileRef)) = 0 %THEN
11 %DO;
12 DATA _null_;
13 LENGTH linetxt $32767;
14 IF _n_ = 1 THEN
15 DO;
16/* fileHeader=sasmsg("&msg_dset","_cxa_norm_19_note","noquote","&fileRef");*/
17/* put fileHeader;*/
18 END;
19 INFILE &fileRef. LENGTH=reclen ;
20 INPUT linetxt $varying32767. reclen ;
21 put linetxt;
22 RUN;
23 %END;
24 %let i=%eval(&i+1);
25 %END;/* %do %while */
26 %END;/*%if %length(&fileRefs)*/
27%mend;
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 2020, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.