/* ディレクトリにある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
)