1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
data essai;
format toto $1. tata $2. titi $2.;
input toto $ tata $ titi $;
cards;
a rr yy
b ss vv
c tt ww
;
run;
%macro toto (var);
option nomprint;
DATA _null_;
SET essai ;
call symput("&var"||left(_n_),(&&var));
call symput('nb',_n_);
run;
%LOCAL i;
%do i=1 %TO &nb;
%put Affichage &var IS &&&var&i;
%end;
%mend;
%macro appel;
proc contents data=essai out=cont noprint; run;
data _null_; set cont;
call symput('var'||left(_n_),(trim(name)));
call symput('nb_var',_n_);
run;
%do i=1 %to &nb_var;
%put Appel &i &&var&i;
%toto(&&var&i);
%end;
%mend;
%appel; |
Partager