Type : MIXTE
Das Makro verwendet keine Hardcoded-Daten, sondern arbeitet mit dem als Parameter übergebenen Dataset (Argument 'ds'). Es analysiert die Metadaten (Variablennamen) dieses Datasets.
| 1 | %put MACRO CALLED: hasvarsc v2.0; |
| 2 | |
| 3 | %macro hasvarsc(ds,varlist,casesens=no); |
| 4 | %local varmatch varlistc; |
| 5 | %IF not %LENGTH(&casesens) %THEN %let casesens=no; |
| 6 | %let casesens=%upcase(%substr(&casesens,1,1)); |
| 7 | %let varlistc=%varlistc(&ds); |
| 8 | %IF not %LENGTH(&varlistc) %THEN %DO; |
| 9 | %put NOTE: (hasvarsc) There are no character variables in the INPUT dataset therefore; |
| 10 | %put NOTE: (hasvarsc) the character variable(s) you are testing for will not be found.; |
| 11 | %let varmatch=%match(,&varlist,casesens=&casesens); |
| 12 | 0 |
| 13 | %END; |
| 14 | %ELSE %DO; |
| 15 | %let varmatch=%match(&varlistc,&varlist,casesens=&casesens); |
| 16 | %IF not %LENGTH(&_nomatch_) %THEN 1; |
| 17 | %ELSE 0; |
| 18 | %END; |
| 19 | %mend hasvarsc; |