前回の記事、「 Shift-JIS の固定長ファイルを UTF-8 環境に読み込む (kcvt関数) - SAS 」の余談。 「 Shift-JIS の固定長ファイルを UTF-8 環境に読み込む (kcvt関数) - SAS 」 にて、kcvt 関数を用いて、ファイルを読み込んでみました。 テスト用に用いたファイルでは、文字コード変換が必要な項目は1項目だけだったので、まだ良かったのですが、もし変換しなければならない項目が10項目、20項目、、、とあると、その項目の数だけ、length ステートメントと kcvt 関数を書かなければなりません。 これはとても面倒くさいです。 filename ステートメント、または infile ステートメントにて使用できる encoding= オプションを用いれば読め...ません。 このオプションは、CSV ファイルや TSV ファイルのように、区切り文字(セパレータ)があれば使えますが、固定長ファイルでは理想通りには使うことができません。 前回の記事のテストコードを流用して、固定長ファイルの読み込み時に encoding= を使うと、どうなるのか試しに使ってみます。 テストコード - encoding=sjis を追加 filename IN "/folders/myfolders/test.txt" ; data TEST ; infile IN recfm=F lrecl=28 encoding=sjis ; input @001 CUSTOMER_ID 5. @006 NAME $20. @026 AGE 2. ; run ; 実行ログ 56 filename IN "/folders/myfolders/test.txt" ; 57 58 data TEST ; 59 infile IN recfm=F lrecl=28 encoding=sjis ; 60 input @001 CUSTOMER_ID 5. 61 ...
コメント
コメントを投稿