Bonjour,
j'aimerai passer un paramètre pour le datafile= dans le proc import, mais ...
Tout d'abord un premier code que j'aimerais comprendre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
data _null_;
%let ici = "D:\Téléchargements\";
 
%let dfile0 = compress(catx(' ',&ici.,"toto.xlsx"),' ');%put "dfile0=" &dfile0;
   result0=&dfile0;
   put "result0 =" result0 $char.; 
   %put "&dfile0 =" "&dfile0" ; 
 
%let dfile1 = compress(catx(' ',5,6),' ');%put "dfile1=" &dfile1;
   result1=&dfile1;
   put "result1 =" result1 $char.; 
   %put "&dfile1 =" "&dfile1" ; 
 
run;
quand je l’exécute j'obtiens dans le log :
result0 =
D:\Téléchargements\toto.xlsx

result1 =
56
ce qui me convient mais pourquoi ne pas je ne récupère rien pour les %put.

Par la suite j'aimerai passer par exemple result0 comme parametre sous la forme suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
PROC IMPORT OUT= &lib1..&table1
            DATAFILE= &dfile0
 
            DBMS=EXCELCS REPLACE;
     RANGE="toto$"; 
RUN;
Enfin quelque chose de ce style.
Je tourne en rond . Quelque chose m'échappe...
je ne veux pas passer le paramètre en dur dans l'appel à la macro, car le nom du répertoire où se trouve le fichier peut être très long.
D'avance merci.