编写文本文件时防止最终的LF / CRLF

时间:2016-02-17 16:59:16

标签: sas

将一些数据提供给客户端应用程序(通过STP)抱怨额外的空行。我可以在客户端修复(删除)这个,但很想知道SAS中是否可以修复。

问题在于,在生成文本文件时,SAS始终在最后一条记录上添加最终回车(可通过termstr选项配置的类型)。例如:

data _null_;
  file "C:\Temp\test.csv";
  set sashelp.class;
  put (_all_) ('09'x);
run;

PROC EXPORT DATA=sashelp.class 
  OUTFILE="C:\Temp\test2.csv"
  DBMS=TAB REPLACE;
  PUTNAMES=NO;
run;

产生

enter image description here

enter image description here

分别。

如何生成不包含额外空白行的文件(上图中的记录20)?

请注意,我的文本文件实际上是通过_webout fileref进行流式处理的,因此我无法将其读回SAS。

1 个答案:

答案 0 :(得分:2)

滚动你自己。但是我的put(_ALL)在每个"行"的末尾添加了一个额外的逗号。所以你最后在最后一个字段中留出了一个额外的空格,这可能是也可能不是问题。

data _null_;
   file "~/testeof.csv" dsd recfm=n;
   set sashelp.class(obs=5) end=eof;
   put (_all_)(:) +(-1) @;
   if not eof then put '0d0a'x;
   else put '20'x;
   run;

enter image description here