条件がtrueの間はマクロのセクションを繰り返し実行します。
種類: | マクロステートメント |
制限事項: | マクロ定義でのみ使用可能 |
参照項目: | %ENDステートメント |
%macro untag(title); %let stbk=%str(<); %let etbk=%str(>); /* Do loop while tags exist */ %do %while (%index(&title,&stbk)>0) ; %let pretag=; %let posttag=; %let pos_et=%index(&title,&etbk); %let len_ti=%length(&title); /* Is < first character? */ %if (%qsubstr(&title,1,1)=&stbk) %then %do; %if (&pos_et ne &len_ti) %then %let posttag=%qsubstr(&title,&pos_et+1); %end; %else %do; %let pretag=%qsubstr(&title,1,(%index(&title,&stbk)-1)); /* More characters beyond end of tag (>) ? */ %if (&pos_et ne &len_ti) %then %let posttag=%qsubstr(&title,&pos_et+1); %end; /* Build title with text before and after tag */ %let title=&pretag&posttag; %end; title "&title"; %mend untag;
%untag(<title>Total <emph>Overdue </emph>Accounts</title>)
TITLE "Total Overdue Accounts";
%untag( %nrstr(<title>Accounts: Baltimore, Chicago, and Los Angeles</title>))