Вопрос
У меня есть дескриптор файла 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.";