Type : CREATION_INTERNE
Les définitions des symboles (formes et couleurs) sont codées en dur dans le script via l'instruction CARDS.
| 1 | DATA _null_; |
| 2 | INFILE CARDS eof=END; |
| 3 | LENGTH sym $200; |
| 4 | INPUT value $char8. +1 font $char8. +1 color $char8.; |
| 5 | x=_n_; |
| 6 | y=_n_; |
| 7 | z=_n_; |
| 8 | OUTPUT; |
| 9 | x+1; |
| 10 | OUTPUT; |
| 11 | |
| 12 | IF value='"' then value="'"||'"'||"'"; |
| 13 | |
| 14 | sym="symbol"||trim(left(put(_n_,2.)))||" value="||value; |
| 15 | IF font ^= "" THEN sym=trim(sym)||' font='||font; |
| 16 | IF color^= "" THEN sym=trim(sym)||' color='||color; |
| 17 | ELSE sym=trim(sym)||' color=black'; |
| 18 | |
| 19 | call symput ('symbol'||left(put(_n_,2.)), trim(sym)); |
| 20 | return; |
| 21 | |
| 22 | END: |
| 23 | call symput ('Nsymbol', left(put(_n_-1,8.))); |
| 24 | delete; |
| 25 | |
| 26 | CARDS; |
| 27 | dot black filled-circle |
| 28 | U marker blue filled-square |
| 29 | /* ... suite des données ... */ |
| 30 | ; |
| 31 | RUN; |
| 1 | %macro symbols (groups); |
| 2 | %IF (&groups > &Nsymbol) %THEN %let groups=&Nsymbol; |
| 3 | goptions reset=symbol; |
| 4 | %DO i=1 %to &groups; |
| 5 | &&symbol&i; |
| 6 | %END; |
| 7 | %mend; |