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!

Était-ce utile?

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.";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top