34%macro mf_getvarlist(libds
40 %local outvar dsid nvars x rc dlm q var vtype;
43 %
if %upcase("e)=DOUBLE %then %let q=%qsysfunc(
byte(34));
44 %
else %
if %upcase("e)=SINGLE %then %let q=%qsysfunc(
byte(39));
46 %let dsid=%sysfunc(open(&libds));
49 %let nvars=%sysfunc(attrn(&dsid,NVARS));
50 %
if &nvars>0 %then %
do;
54 %let vtype=%sysfunc(vartype(&dsid,&x));
55 %
if &vtype=&typefilter or &typefilter=A %then %
do;
56 %let var=&q.%sysfunc(varname(&dsid,&x))&q.;
57 %
if &var=&q&q %then %
do;
58 %put &sysmacroname: Empty column found in &libds!;
61 %
if %quote(&outvar)=%quote() %then %let outvar=&var;
62 %
else %let outvar=&outvar.&dlm.&var.;
66 %let rc=%sysfunc(close(&dsid));
69 %put &sysmacroname: Unable to open &libds (rc=&dsid);
70 %put &sysmacroname: SYSMSG= %sysfunc(sysmsg());
71 %let rc=%sysfunc(close(&dsid));
73 %
do;%unquote(&outvar)%end;