2009年6月21日日曜日

入出力ファイル名のバグ修正

入出力ファイル名が正しく拾えていない問題を修正しました。実装で悩んだのが、ファイル参照名を実ファイル名として表示するかどうかです。入力ファイルがワイルドカードで複数のファイルから構成されるときには、 実体のファイル名が多くなって見づらいかもしれません。テキストファイルへの出力がそれほど多くないため、ファイル参照名で表示するように決定しました。



テストに使ったログを貼り付けておきます。

184 filename myfile 'c:\temp\name.txt';185186 data _null_;187
set sashelp.class;188 file myfile;189 put name;190 run;
NOTE: 出力ファイル MYFILE
: ファイル名=c:\temp\name.txt, レコードフォーマット=V,論理レコード長=256
NOTE: 19 レコードを出力ファイル
MYFILE に書き込みました。 最小レコード長は 4 です。 最大レコード長は 7 です。NOTE: データセット SASHELP.CLASS から 19
オブザベーションを読み込みました。NOTE: DATA ステートメント 処理 (合計処理時間): 処理時間 0.03 秒 CPU 時間 0.00 秒
191192 data _null_;193 set sashelp.class;194 file "c:\temp\name2.txt";195
put name;196 run;
NOTE: 出力ファイル "c:\temp\name2.txt" :
ファイル名=c:\temp\name2.txt, レコードフォーマット=V,論理レコード長=256
NOTE: 19 レコードを出力ファイル
"c:\temp\name2.txt" に書き込みました。 最小レコード長は 4 です。 最大レコード長は 7 です。NOTE: データセット
SASHELP.CLASS から 19 オブザベーションを読み込みました。NOTE: DATA ステートメント 処理 (合計処理時間): 処理時間 0.03 秒
CPU 時間 0.00 秒
197198 data x;199 infile myfile;200 input name $ ;201 run;
NOTE: 入力ファイル MYFILE : ファイル名=c:\temp\name.txt, レコードフォーマット=V,論理レコード長=256
NOTE: 19 レコードを入力ファイル MYFILE から読み込みました。 最小レコード長は 4 です。 最大レコード長は 7 です。NOTE:
データセット WORK.X は 19 オブザベーション、 1 変数です。NOTE: DATA ステートメント 処理 (合計処理時間): 処理時間 0.01 秒
CPU 時間 0.00 秒
202203 data y;204 infile "c:\temp\name2.txt";205 input name
$;206 run;
NOTE: 入力ファイル "c:\temp\name2.txt" : ファイル名=c:\temp\name2.txt,
レコードフォーマット=V,論理レコード長=256
NOTE: 19 レコードを入力ファイル "c:\temp\name2.txt" から読み込みました。
最小レコード長は 4 です。 最大レコード長は 7 です。NOTE: データセット WORK.Y は 19 オブザベーション、 1 変数です。NOTE:
DATA ステートメント 処理 (合計処理時間): 処理時間 0.01 秒 CPU 時間 0.00 秒
207208 proc datasets
lib=work nolist;209 delete x y;210 quit;
NOTE: WORK.X (memtype=DATA)
を削除します。NOTE: WORK.Y (memtype=DATA) を削除します。NOTE: PROCEDURE DATASETS 処理 (合計処理時間):
処理時間 0.01 秒 CPU 時間 0.00 秒

0 件のコメント :

コメントを投稿