STREAM プロシジャ
PROC STREAM ステートメント
SASマクロ指定を含むことができる任意のテキストで構成される入力ストリームを処理できます。
構文
必須引数
OUTFILE=fileref
すべてのトークンが書き込まれるファイルを指定します。
ファイル参照のLRECL指定が使用されます。LRECLを指定しない場合、グローバルLRECL=オプションのデフォルト値である32,767バイトが使用されます。PRESCOLオプションを使用しない場合、トークン間に適切な数のブランクが挿入されて、すべてのトークンがストリーム出力されます。レコード間でトークンは分割されません。また、ブランクがトークン内にない限り、トークンのストリームはレコード間で分割されません。たとえば、<table>X</table>はレコード間で分割されませんが、<table> X </table>はブランクが示されている場所(Xの前後)で分割されます。
text
PROC STREAMで使用するSASステートメントまたはマクロを指定します。
オプション引数
MOD
出力ファイルが上書きされるのではなく追加されることを指定します。
NOABSSCMT
コメントが出力ストリームに書き込まれるかどうかを指定します。
PL/Iプログラミング言語スタイルのコメントが表示される場合(/* comments */)、コメント文字(/*と*/)間のすべてのテキストが出力ストリームに表示されます。このオプションを指定しない場合、PL/Iスタイルのコメントは出力ストリームに表示されません。NOABSSCMTを設定する場合は、通常単一引用符(word
don'tなど)がコメントに表示される可能性があるため、QUOTING=も設定することを強くお勧めします。
PRESCOL
元の入力ファイルの列を保持することを示します。
マクロ代替がある場合やレコードサイズが32,767バイトを超える場合、このオプションを使用しても失敗します。この場合、マクロの展開が列の場所に影響する可能性があります。
PRESCOLオプションを指定すると、%INCLUDEマクロで含まれるRTFファイルの有効性が向上します。
QUOTING=SINGLE | DOUBLE | BOTH
引用符の処理方法を指定します。
SINGLE
単一引用符を他の文字と同様に扱うことを指定します。SINGLEオプションを使用する場合で、'&hello'のように、マクロ参照が単一引用符内にある場合、マクロ参照が展開されます。
DOUBLE
二重引用符を他の文字と同様に扱うことを指定します。
BOTH
SINGLEおよびDOUBLEの両方のオプションを使用することを指定します。
RESETDELIM='label'
特殊マーカートークンを示します。
%INCLUDEや%LETステートメントのように、ステートメントを展開する必要がある場合にこのオプションが使用されます。これらのステートメントはステートメント境界から開始する必要があります。構文でステートメント境界が許可されていない場合、指定されたラベルとその後に続くセミコロンを入力ストリームに挿入して、トークナイザー要件を満たすことができます。ラベルとセミコロンは出力ファイルに送信されません。
次の例では、%INCLUDEの前にセミコロンが付いておらず、コードは正しくありません。
x y %include myfile; z
ただし、RESETDELIM=オプションを使用すると、展開は予想どおりに実行されます。
resetdelim=’mylabel’
x y mylabel;
%include myfile; z
Mylabel;は出力ファイルに表示されません。
Mylabelは有効なSAS名であることが必要です。つまり、先頭は文字またはアンダースコアで、それ以降のすべての文字は文字、アンダースコア、数値である必要があります。mylabelの長さは32文字以内であることが必要です。
指定と使用法では、大文字と小文字が区別されません。RESETDELIM=にはデフォルト値がありません。
PROC STREAMは、&STREAMDELIMというマクロ変数の存在を確認します。このマクロ変数が存在する場合は、そのまま使用されます。このマクロ変数が存在しない場合、PROC STREAMは、RESETDELIM=オプションが指定されているかどうかを検証します。このオプションが指定されている場合、マクロ変数&STREAMDELIMは、RESETDELIM=オプションの値に設定されます。RESETDELIM=オプションが指定されていない場合、PROC STREAMは、現在の日時値に基づいて&STREAMDELIMマクロ変数の一意の値を作成します。
この点を考慮して、&STREAMDELIMをPROC STREAMの入力に追加できます。このマクロ変数が表示される場合、オプションのキーワードが続くものと見なされます。終了のセミコロンが必要です。&STREAMDELIM値からセミコロンまで(セミコロンを含む)のすべてのトークンは出力ストリームに送信されず、PROC STREAMの特別な管理情報項目になります。
入力で%INCLUDEステートメントを指定する必要がある場合でも、その前にセミコロンを付けない場合は、%INCLUDEステートメントの前に次のステートメントを追加する必要があります。
&STREAMDELIM;
このステートメントを指定すると、セミコロンはトークナイザーに認識されますが、PROC STREAMに取り込まれます。
&STREAMDELIMの後に次のオプションのキーワードを続けることができます。
NEWLINE
新しい行が出力ファイルに送信されることを指定します。
READFILE filename
指定されたファイル名が開かれ、その内容がそのまま読み込まれて出力ファイルに書き込まれることを指定します。このファイル内のマクロの展開は行われず、新しい行が保持されます。この動作は、マクロの展開が実行され、新しい行が無視される%INCLUDEの動作と異なります。READFILEキーワードの使用例については、READFILEキーワードの使用を参照してください。