Chemin pour appeler des fichiers et des programmes
Bonjour,
J'ai deux ordinateurs indépendant l'un de l'autre. Jusqu'à présent, tous mes programmes SAS était sur un seul ordinateur. Toutes les adresses sont écrites en dur ; aussi bien dans les importations de fichiers que dans le programme principal.
Code:
1 2 3
| %include 'P:\VI\ImpPh01Po.sas';
%include 'P:\VI\ImpPh02Be.sas';
.... |
Maintenant, il faut que mes programmes puissent tourner sur n'importe quel ordinateur. Sachant que le programme principal fait appel à une trentaine de fichiers, je ne sais pas comment faire pour avoir le moins de modifications à effectuer au niveau de l'adresse . J'ai essayé avec un %let pour définir le chemin mais la log dit que les fichiers n’existent pas.
Mes programmes d’importation ressemblent à
Code:
1 2 3 4 5
| data Vi.ImpPoDi;
%let _EFIERR_ = 0;
infile 'P:\Mes Documents\ViM\DMI\01\20180710\E1.txt' delimiter='09'x MISSOVER DSD lrecl=32767 firstobs=2 ;
...
run; |
Est-ce que quelqu'un voit comment je peux m'en sortir?
Merci d'avance.
Chemin pour appeler des fichiers et des programmes
Bonjour,
Il faut utiliser des guillemets doubles autour du chemin pour que la macro-variable soit interprétée :
Code:
1 2 3 4 5 6
| 1 %let path=e:\donnees\sas;
2
3 %include '&path.\autoexec.sas';
WARNING: Physical file does not exist,
C:\...\autoexec.sas.
ERROR: Cannot open %INCLUDE file &path.\autoexec.sas. |
mais
Code:
1 2 3
| 4 %let path=e:\donnees\sas;
5
6 %include "&path.\autoexec.sas"; |
s'exécute correctement,
Cordialement,