リスト出力のページ区切り文字を 0x0c (改ページ) から、任意の文字に変更するオプション formdlim - SAS
SASでリスト出力したテキストファイルに対して、grepコマンドを実行し「バイナリー・ファイル(標準入力)は一致しました」と出力される原因と解決方法にて、ページ区切りに 0x0c (改ページ) が使われていたせいで困ったという話を書きました。そのページ区切りですが、オプションで改ページから別の文字に設定変更できることを発見しました。
変更には、オプション formdlim を用います。
テストコード
options nocenter ; /* リストの出力パスを指定 */ proc printto print="/folders/myfolders/test.lst" new ; run ; /* テストデータ */ data TEST ; A = 1 ; run ; /* ページ区切りを -(ハイフン) にする */ options formdlim='-' ; proc print ; run ; proc print ; run ; /* ページ区切りを 0x0c(改ページ) に戻す */ options formdlim='' ; proc print ; run ; proc print ; run ;
出力結果
------------------------------------------------------------------------------------------------------------------------------------ 2015年 5月19日 火曜日 00時17分30秒 19 OBS A 1 1 ------------------------------------------------------------------------------------------------------------------------------------ 2015年 5月19日 火曜日 00時17分30秒 20 OBS A 1 1 2015年 5月19日 火曜日 00時17分30秒 21 OBS A 1 1 2015年 5月19日 火曜日 00時17分30秒 22 OBS A 1 1
0x0a (改行コードLF) を指定すると、1行の文字数だけ指定した文字を繰り返すため、大量の 0x0a (改行コードLF)がページの区切りとして出力されます。出力結果は長いので割愛。
options formdlim="0a"x ;
色んな文字列を区切り文字として使いたいところですが、残念ながら最大1文字のみの指定となっています。
59 options formdlim="ページ区切りですYO" ; ________ 19 ERROR 19-12: SASオプションFORMDLIMのオプション値は最大1文字を必要とします。
コメント
コメントを投稿