2019年4月1日月曜日

streamプロシジャ_noabsscmtオプション

ちまたで話題のstreamプロシジャの紹介を私もしようと.まあ便利ですからねえアレ
beginから一番最後の;;;;までの内容を外部ファイルに出力することができるやつですね.

この記事ではstreamプロシジャのnoabsscmtオプションの紹介です.
このオプションはコメントを外部ファイルに出力するのに必要なものです.

%let _mac1 = "tst" ;

filename tst "st2.txt" ;
proc stream outfile=tst resetdelim="rd" noabsscmt ;
begin
hoge rd newline ;
/*ここはコメント*/ rd newline ;
hage rd newline ;
/*&_mac1*/
;;;;

とすると,以下のように出せます.
今回はst2というテキストファイルへの出力です.
ただしコメント部分のマクロ変数は展開されません.
hoge
/*ここはコメント*/
hage
/*&_mac1*/

3 件のコメント:

  1. ご紹介ありがとうございます。
    noabsscmtオプションを使用していても、マクロ中でproc streamを使用すると出力ファイルにコメントが出力されないのですが、対処法ご存じないでしょうか。

    返信削除
  2. この問題私も知らなかったです.教えて下さってありがとうございます.
    いろいろ試してみたのですが,表示したいコメントを別ファイルにして%includeするかreadfileキーワード使うかで,マクロの中でproc streamを実行してもコメントは表示されました.もちろんnoabsscmtオプションは必要です.
    しかしコメント書くたびに外部ファイルにしてincludeはとても面倒なので実用性がない気がします...お役に立てなくて申し訳ございません...

    返信削除
    返信
    1. いろいろ試して教えてくださり、ありがとうございます。
      複数ファイルでの管理は難しいですよね...

      SASもマクロ中で実行されることを想定して作ってくれればいいのに...もし対処法が見つかったら共有させていただきます。

      削除