SAS中的文件选项

file options in SAS

我有一个 .txt 文件,例如下面的.txt文件(txt_file)有4行,第2行和第3行前面有空格。我正在尝试使用文件语句来制作副本。但是,第二行和第三行的空格消失了。 所以我想知道我是否可以使用一个选项来保留空格,或者使用另一种方法来保留空格,以确保副本与原始副本完全相同。

abcd efg hijklmn opqrst
     6bho jghvgu
  3hnopkop
1bji njpb 78nhiobhio

data _null_;
 set txt_file;
  file "c:/txt_file_dup" notitles noprint   ;
run;

复制文本最简单的方法是使用 _INFILE_ 自动变量。

data _null_;
   infile 'original_file.txt';
   file 'new_copy.txt' ;
   input;
   put _infile_;
run;

要将数据从数据集写入文本文件,请使用 PUT 语句。要保留数据中的前导空格,请在 PUT 语句中使用 $CHAR 或 $VARYING 格式。因此,假设你有一个名为 HAVE 的数据集,其中有一个名为 LINE 的字符变量,长度为 80,你可能会这样做:

data _null_;
  set have;
  file 'want.txt' ;
  put line $char80.;
run;

或者为了不写尾随空格,请改用 $VARYING 格式。要使用它,您需要一个包含要写入的字节数的变量。

data _null_;
  set have;
  file 'want.txt' ;
  len=lengthn(line);
  put line $varying80. len;
run;

使用FCOPY函数。

filename source 'original.txt';
filename destin 'original(copy).txt';

%let rc = %sysfunc(FCOPY(source,destin));

文件名可以是网址,也可以是本地文件系统。