VOTRE AMI D'IMPRESSION
-
06-07-2019 - |
Question
J'ai un descripteur de fichier SAS créé en tant que tel:
filename filehandle "report.htm";
J'ai plusieurs fichiers (fichiers Javascript compactés) comportant des lignes très longues (> 32K). J'aimerais pouvoir ajouter leur contenu au fichier ci-dessus.
Je sais que si je le fais:
data _null_;
file filehandle;
put "very long string here";
run;
Parfois, des sauts de ligne sont insérés dans la très longue chaîne, ce que je ne souhaite pas, car cela pourrait casser le code Javascript.
Idéalement, quelque chose comme:
x "cat packed.js >> report.htm";
fonctionnerait bien, mais je n’ai que le descripteur de fichier, pas le chemin du fichier original.
Quelles routines pourraient m'aider à accomplir le travail efficacement? Existe-t-il un moyen de lire le fichier JS compressé et de l'écrire en utilisant put, ligne par ligne ou caractère par caractère?
Merci!
La solution
Vous pouvez récupérer le chemin complet du descripteur de fichier à l'aide de la fonction pathname, puis utilisez la commande x comme vous le souhaitez.
Par exemple:
data _null_;
filenm=pathname('filehandle');
call symput('filenm',filenm);
run;
x "cat packed.js >> &filenm.";