Вопрос

У меня есть дескриптор файла SAS, созданный как таковой:

filename filehandle "report.htm";

У меня есть несколько файлов (упакованные файлы Javascript), которые содержат очень длинные строки (> 32 КБ в длину).Я хотел бы найти способ добавить их содержимое в приведенный выше файл.

Я знаю, что если я это сделаю:

data _null_;
    file filehandle;
    put "very long string here";
run;

Иногда в очень длинную строку вставляются разрывы строк, чего я не хочу, поскольку это может нарушить код Javascript.

В идеале, что-то вроде:

x "cat packed.js >> report.htm";

работало бы хорошо, но у меня есть только дескриптор файла, а не исходный путь к файлу.

Какие процедуры могли бы помочь мне эффективно выполнить эту работу?Есть ли какой-нибудь способ прочитать упакованный JS-файл и записать их с помощью put, либо построчно, либо посимвольно?

Спасибо!

Это было полезно?

Решение

Вы можете получить полный путь из дескриптора файла с помощью функции pathname, а затем использовать команду x, как вы хотели.

Например:

data _null_;
  filenm=pathname('filehandle');
  call symput('filenm',filenm);
run;

x "cat packed.js >> &filenm.";
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top