2017年10月18日水曜日

外部ファイルをいっぺんに読み込んで連結する【FILEVAR=】



まえに、以下の記事を書きました。
外部ファイルをいっぺんに読み込んで連結する。


今回は別のやり方(INFILEステートメントの FILEVAR=オプション を使った方法)を紹介します。
まず以下のCSVファイルがあったとします。


C:\sample\TEST1.csv
001,a,11
002,b,22

C:\sample\TEST2.csv
003,c,33
004,d,44



①手順1
まずは読み込みたいテキストファイルのフルパスをデータセットに格納します。

data DT1 ;
   length VAR $500. ;
   VAR="C:\sample\test1.csv"; output;
   VAR="C:\sample\test2.csv"; output;
run;
VAR 
 C:\sample\test1.csv 
 C:\sample\test2.csv



手順②
上記のテキストファイルのフルパス情報を使って、テキストファイルを読み込んでいきます。

data OUT1;

  *--- テキストファイルのフルパスが格納されたデータセットをSET ---;
  set DT1;

  *--- フルパスが格納された変数VARを filevar= に指定 ---;
  *--- end=で各テキストファイルの終端を検知する ---;
  infile dummy filevar=VAR end=EOF dsd truncover;

  *--- テキストファイルの終端を検知するまでループ ---;
  length A B $10. C 8.;

  do until (EOF);
     input A B C;
     output;
  end;

run;

 B  
 C  
 001 
 a
 11
 002
 b 
 22
 003
 c
 33
 004
 d
 44



0 件のコメント:

コメントを投稿