2009-07-31 10 views
2

J'ai un descripteur de fichier créé SAS en tant que tel:SAS pour déposer

filename filehandle "report.htm"; 

J'ai plusieurs fichiers (fichiers emballés Javascript) qui ont des lignes très longues (> 32K de longueur). Je voudrais un moyen d'ajouter leur contenu au fichier ci-dessus.

Je sais que si je fais:

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

Parfois, la très longue chaîne a des sauts de ligne insérés, que je ne veux pas car il pourrait briser le code Javascript.

Idéalement, quelque chose comme:

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

fonctionnent bien, mais je ne le descripteur de fichier, pas le chemin du fichier d'origine.

Quelles routines pourraient m'aider à accomplir le travail efficacement? Est-il possible de lire le fichier JS compressé et de l'écrire en utilisant put, soit ligne par ligne ou caractère par caractère?

Merci!

Répondre

3

Vous pouvez récupérer le chemin d'accès complet à partir du descripteur de fichier en utilisant 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."; 
+0

ah ne savait pas d'une fonction de chemin. Merci! –