2010-09-14 113 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