Type : MIXTE
La macro no utiliza ningún conjunto de datos. Se basa en una información que puede ser externa (un parámetro textual proporcionado por el usuario durante la llamada) o interna (la versión del sistema SAS actual).
| 1 | %macro _catext(arg1, version=&arg1); |
| 2 | |
| 3 | %IF %LENGTH(&version) %THEN %DO; |
| 4 | %local i; |
| 5 | %let version=%upcase(&version); |
| 6 | |
| 7 | %IF %_substr(&version, 1, 1)=V %THEN %let version=%_substr(&version, 2); |
| 8 | |
| 9 | %let i=%index(&version, .); |
| 10 | |
| 11 | %IF &i %THEN %let version=%_substr(&version, 1, &i-1)%_substr(&version, &i+1); |
| 12 | |
| 13 | %let version=&version%_repeat(0, 3-%LENGTH(&version)); |
| 14 | |
| 15 | %IF &version>=700 %THEN sas7bcat; |
| 16 | %ELSE %IF &version=607 | &version=609 %THEN sct??; |
| 17 | %ELSE %IF &version=608 | &version=610 %THEN sc2; |
| 18 | %ELSE %IF &version=603 %THEN sct; |
| 19 | %ELSE %_unwind(sct??, sc2, sct??); |
| 20 | %END; |
| 21 | %ELSE %DO; |
| 22 | %IF %_version(7) %THEN sas7bcat; |
| 23 | %ELSE %_unwind(sct??, sc2, sct??); |
| 24 | %END; |
| 25 | |
| 26 | %mend _catext; |