/* ディレクトリにあるMM_MISC.sasをカタログに格納する */ filename there '/tmp' ; libname mylib '/tmp/sashelp' ; %let trialcode = MM_MISC; %let catname = modelmgr; data _null_ ; filename mycat catalog "mylib.&catname" lrecl= 256 ; file mycat("&trialcode..source") ; infile there("&trialcode..sas") ; input ; put _infile_ ; run; proc catalog c=mylib.&catname; contents; run; quit; /* 格納したプログラムを読み込む */ filename chkinit catalog "mylib.&catname..&trialcode..source"; %include chkinit;
SASプログラムとログを解析するユーティリティを開発するための備忘録です。This is a memo to develop utility that analyzes the SAS log.
2018年5月9日水曜日
カタログにSASプログラムを格納するサンプル
カタログにプログラムを格納するサンプルです。探したら良い例が見つからなかったのでメモしておきます。
2018年5月2日水曜日
カタログに含まれているソースコードを1ずつ取り出してファイルに保存
カタログの中に含まれているソースコードを、1つずつ取り出してディレクトリに出力するマクロです。Model ManagerのAPIの中身を見るために、書きました。
/* ソースコードをファイルに出力するマクロ */ %macro _myfile(catalog=, memname=, dir=); data _null_; infile "&catalog..&memname..source" catalog; file "&dir./&memname..sas"; input; put _infile_; run; %mend; /* カタログに含まれているソースコードをディレクトリに出力するマクロ */ %macro extract_source(in=, dir=); %local out memname; data; stop; run; %let out=&SYSLAST; %let memname=%substr(&out, 6); proc catalog catalog=∈ contents out=&out; run; data _null_; set &out(keep=name type); where type eq 'SOURCE'; attrib catalog length=$32; attrib dir length=$128; catalog = "&in"; dir = "&dir"; call execute('%_myfile(catalog='||catalog||", memname="||name||", dir="||dir||")"); run; proc datasets lib=work nolist; delete &memname; quit; %mend; %extract_source(in=sashelp.modelmgr, dir=/var/tmp);
登録:
投稿
(
Atom
)