параметры файла в SAS - PullRequest
       14

параметры файла в SAS

0 голосов
/ 06 февраля 2020

У меня есть файл .txt, например, следующий файл .txt (txt_file) имеет 4 строки, 2-я и 3-я строки имеют пробелы впереди. Я пытаюсь использовать файл заявление, чтобы сделать копию. однако пробелы 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;

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Используйте функцию FCOPY.

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

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

Имена файлов могут быть как веб-адресами, так и локальной файловой системой.

0 голосов
/ 06 февраля 2020

Самый простой способ скопировать текст - использовать переменную _INFILE_ automati c.

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

Для записи данных из набора данных в текстовый файл используйте оператор PUT. Чтобы сохранить начальные пробелы в данных, используйте формат $ CHAR или $ VARYING в выражении PUT. Поэтому, предполагая, что у вас есть набор данных с именем 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;
...