我有这个代码,但我认为可以更容易
%MACRO Check_Global;
%LET MaxLength = 35;
%LET Filler = %STR(..................................................);
%DO i = 1 %TO %SYSFUNC(COUNTW(&V_Global));
%LET Variab = %SCAN(&V_Global, &i);
%LET Content = &&&Variab;
%LET Padding = %SUBSTR(&Filler, 1, %EVAL(&MaxLength - %LENGTH(&Variab)));
%PUT &Variab&Padding: &Content;
%END;
%MEND;
%Check_Global;
结果: Filter_UK........................:'01'.'02'.'03' Filter_USA........................: '11'.'12'.'13' ......
还有其他更好更快的方法来填充标题 Filter_UK 吗? 尝试重复但不起作用
%sysfunc(repeat(., %EVAL(&MaxLength - %LENGTH(&Variab))));
效果很好。
%let V_Global= _CLIENTAPP _CLIENTAPPABBREV;
%Check_Global;
_CLIENTAPP..........................: 'SAS Enterprise Guide'
_CLIENTAPPABBREV....................: EG