27 %macro mf_getvarlist(libds
32 %local outvar dsid nvars x rc dlm q var;
35 %
if %upcase("e)=DOUBLE %then %let q=%qsysfunc(
byte(34));
36 %
else %
if %upcase("e)=SINGLE %then %let q=%qsysfunc(
byte(39));
38 %let dsid=%sysfunc(open(&libds));
42 %let nvars=%sysfunc(attrn(&dsid,NVARS));
43 %
if &nvars>0 %then %
do;
45 %let outvar=&q.%sysfunc(varname(&dsid,1))&q.;
48 %let var=&q.%sysfunc(varname(&dsid,&x))&q.;
49 %
if &var=&q&q %then %
do;
50 %put &sysmacroname: Empty column found in &libds!;
53 %
if &x=1 %then %let outvar=&var;
54 %
else %let outvar=&outvar.&dlm.&var.;
57 %let rc=%sysfunc(close(&dsid));
60 %put unable to open &libds (rc=&dsid);
61 %let rc=%sysfunc(close(&dsid));