2010-09-14 114 views

回答

4

答案可能取決於導致換行符的位置,它們是什麼類型的換行符,可能還取決於您運行SAS的操作系統以及您使用的SAS版本。不知道任何這些問題的答案的,這裏有一些建議:

首先,你可以試試這個INFILE語句上的數據步:

infile "C:\test.csv" dsd delimiter=';' termstr=crlf; 

termstr=crlf告訴SAS只使用Windows換行符觸發新記錄。

或者,你可以有SAS前處理文件逐字節,以確保配對的引號內的任何換行符替換(也許有空格):

data _null_; 
    infile 'C:\test.csv' recfm=n; 
    file 'C:\testFixed.csv' recfm=n; 
    input a $char1.; 
    retain open 0; 
    if a='"' then open=not open; 
    if (a='0A'x or a='0D'x) and open then put '00'x @; 
    else put a $char1. @; 
run; 

這是從here適合您的參考。你可能需要修改這些代碼才能使其工作。這個想法是,然後你會用一個標準的數據步驟將結果csv讀入SAS。

+0

這是一個艱難的。謝謝sasfrog。 – 2015-10-16 08:25:04