Macro XAMINE (from Fraktal SAS Programming): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K |
K |
||
Zeile 9: | Zeile 9: | ||
}} | }} | ||
− | + | {| class="wikitable" | |
− | + | ! Code executed | |
− | + | ! Function performed | |
− | + | |- | |
− | + | | | |
− | + | %MACRO xamine(xpath,etype); | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :%GLOBAL ne ie dir; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :%LOCAL xpath xentry entry etype; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | ;filename entries pipe "dir /b &XPATH." lrecl = 256; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | ;filename dirs pipe "dir /b /ad &XPATH." lrecl = 256; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | ;data entries; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :length entry $256; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :infile entries length = lrecl end = EOF; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :input entry $varying256. lrecl; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :if EOF then call symput('ne',trim(left(put(_N_,8.)))); | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | ;run; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | ;data dirs; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :length dir $256; | |
− | + | | | |
− | + | |- | |
− | + | | | |
− | + | :infile dirs length = lrecl end = EOF; | |
− | + | | | |
− | + | |- | |
+ | | | ||
+ | :input dir $varying256. lrecl; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;run; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%DO ie = 1 %TO &NE.; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;data _NULL_; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :set entries(firstobs = &IE. obs = &IE.); | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :call symput('entry',compress(translate(entry,'_','(-)'))); | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :call symput('xentry',trim(left(entry))); | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;run; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT |; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT &XPATH.&XENTRY.; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%LET dir =; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;data _NULL_; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | : set dirs(where = (dir = "&XENTRY.")) end = EOF; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :if EOF then call symput('dir',trim(left(put(_N_,8.)))); | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;run; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%IF &DIR. = 1 %THEN %DO; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT +----; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%XDIR(&XPATH.&XENTRY.); | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT +----; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%END; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%ELSE %DO; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%IF %LENGTH(&ETYPE.) ne 0 %THEN %DO; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%IF %INDEX(%SCAN(&ETYPE.,2,_),%SCAN(&XENTRY,2,.)) != 0 %THEN %DO; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%GLOBAL windir; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%XSET(windir); | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT +----; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT | File &XENTRY. opened in external editor WordPad.; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :SYSTASK command "&WINDIR.\write.exe ""&XPATH.\&XENTRY."""; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT +----; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%END; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%IF %INDEX(%SCAN(&ETYPE.,1,_),%SCAN(&XENTRY,2,.)) != 0 %THEN %DO; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT +----; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT | File &XENTRY. opened in SAS program editor window.; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%XEDIT(&XENTRY.,&XPATH.); | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :%PUT +----; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%END; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%END; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%END; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%END; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;proc sql; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :drop table dirs; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | :drop table entries; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;quit; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;filename entries clear; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;filename dirs clear; | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | ;%MEND xamine; | ||
+ | | | ||
+ | |} | ||
{{SeitenNavigation1 | {{SeitenNavigation1 |
Version vom 31. Juli 2014, 15:36 Uhr
Code executed | Function performed |
---|---|
%MACRO xamine(xpath,etype); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|