前のページ|次のページ

%CMPRES自動呼び出しマクロと%QCMPRES自動呼び出しマクロ

複数の空白を圧縮し、先頭と末尾の空白を削除します。

種類: 自動呼び出しマクロ
要件 MAUTOSOURCEシステムオプション

構文

%CMPRES (text | text-expression)
%QCMPRES (text | text-expression)

詳細

注: 自動呼び出しマクロは、SASが提供するライブラリに含まれています。このライブラリは、サイトにインストールされていないか、サイト固有のバージョンである場合があります。このマクロにアクセスできない場合、またはマクロがサイト固有のバージョンかどうか知りたい場合は、オンサイトのSASサポート担当者に問い合わせてください。詳細については、マクロの保存および再利用を参照してください。
CMPRESマクロおよびQCMPRESマクロは、複数の空白を圧縮し、先頭と末尾の空白を削除します。次に示す特殊文字またはニーモニック演算子が引数に含まれる可能性がある場合は、%QCMPRESを使用してください。
CMPRESは、引数がクォーティングされている場合でも、クォーティング解除された結果を返します。QCMPREは、次の特殊文字およびニーモニック演算子をマスクして結果を生成します。そのためマクロプロセッサは、それらをマクロ言語要素ではなく、テキストとして解釈します。
& % ' " ( ) + − * / < > = ¬ ^ ~ ; , # blank
AND OR NOT EQ NE LE LT GE GT IN

例1: %CMPRESを使用した不必要な空白の削除

%macro createft;
   %let footnote="The result of &x &op &y is %eval(&x &op &y).";
   footnote1 &footnote;
   footnote2 %cmpres(&footnote);
%mend createft;
data _null_;
   x=5;
   y=10;
   call symput('x',x);    /* Uses BEST12. format */
   call symput('y',y);    /* Uses BEST12. format */
   call symput('op','+'); /* Uses $1. format     */
run;
%createft
CREATEFTマクロは、2つのフットノートステートメントを生成します。
FOOTNOTE1 "The result of 5 + _________10 is _________15.";
FOOTNOTE2 "The result of 5 + 10 is 15.";

例2: %QCMPRESと%CMPRESの比較

%let x=5;
%let y=10;
%let a=%nrstr(%eval(&x   +   &y));
%put QCMPRES: %qcmpres(&a);
%put CMPRES: %cmpres(&a);
%PUTステートメントによって、次の行がログに書き込まれます。
QCMPRES: %eval(&x + &y)
CMPRES: 15
前のページ|次のページ|ページの先頭へ