IL TUO AMICO DELLA STAMPA
-
06-07-2019 - |
Domanda
Ho un handle di file SAS creato come tale:
filename filehandle "report.htm";
Ho diversi file (file Javascript compressi) che hanno linee molto lunghe (> 32K di lunghezza). Vorrei un modo per aggiungere i loro contenuti al file sopra.
So che se lo faccio:
data _null_;
file filehandle;
put "very long string here";
run;
A volte, nella stringa molto lunga sono state inserite interruzioni di riga, cosa che non voglio poiché potrebbe interrompere il codice Javascript.
Idealmente, qualcosa del tipo:
x "cat packed.js >> report.htm";
funzionerebbe bene ma ho solo l'handle del file, non il percorso del file originale.
Quali routine potrebbero aiutarmi a svolgere il lavoro in modo efficiente? C'è un modo per leggere il file JS compresso e scriverlo usando put, riga per riga o carattere per carattere?
Grazie!
Soluzione
Puoi recuperare il percorso completo dall'handle del file usando la funzione pathname quindi usare il comando x come volevi.
Ad esempio:
data _null_;
filenm=pathname('filehandle');
call symput('filenm',filenm);
run;
x "cat packed.js >> &filenm.";