こんなの。
filename _IN ... ; filename _OUT ... ; data _NULL_ ; length TEXT $32767. ; infile _IN lrecl=32767 dlm='1a'x; input TEXT ; file _OUT lrecl=32767 dlm='1a'x; length NUM_DQ FLG_DQ 8. ; retain FLG_DQ ; if _N_ = 1 then FLG_DQ = 0 ; NUM_DQ=klength(TEXT)-klength(transtrn(TEXT,"""",trimn(""))) ; FLG_DQ = mod(NUM_DQ+FLG_DQ,2) ; if FLG_DQ=0 then put TEXT ; else do ; put TEXT +(-1) "<LF>" @@ ; end ; run ;
補足
文字コード'1a'xは、まずレコードの区切り文字としては使われない文字コードを変数区切り文字に設定したということ。
置換文字 - Wikipediaとか参照。
結構End Of Fileのマークとして使われることがあります。
SASは改行の文字コードをあんまり配慮してくれないので、別レコードになることがあるけど、二重引用符の数を認識して取り込むという感じです。