Bonjour,


Pourriez vous m'expliquer ce code ? que j'ai trouvé sous cette discussion https://www.developpez.net/forums/d1...acteres-array/

Je ne comprends pas la première ligne et la dernière (code posté par SAM)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
......
select name, '_'!!name ,max (monotonic()) into: old_var separated by ',',: new_var separated by ','  ,: nbr 
........
 
%scan("&old_var",&i,",")=put(%scan("&new_var",&i,","), best.);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
data test;
set sashelp.class;
run;
 
%macro to_char;
 
proc sql noprint;
   select name, '_'!!name ,max (monotonic()) into: old_var separated by ',',: new_var separated by ','  ,: nbr 
   from dictionary.columns where upcase(libname)='WORK' and upcase(memname)='TEST' and upcase(type)='NUM';
quit;
 
data new       ( drop  =  %do i=1 %to &nbr. ; %scan("&new_var",&i,",") %end;);
 
set test (  rename=( %do i=1 %to &nbr. ; %scan("&old_var",&i,",")=%scan("&new_var",&i,",") %end; )  );
 
      %do i=1 %to &nbr.;
         %scan("&old_var",&i,",")=put(%scan("&new_var",&i,","), best.);
      %end;
run;
%mend;
 
%to_char;
Merci à vous