Определить из данных конец цикла !DO в макросе
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 37 38 39 40 41 42 43 44 | * Что делать, если конечное значение индекса цикла !DO в макросе нужно определить из данных. * Автор: rlevesque@videotron.ca. SET MPRINT=no. DATA LIST LIST /id(F8) var1(F8). BEGIN DATA. 1 1 1 3 1 2 2 20 2 25 3 15 3 25 END DATA. LIST. SAVE OUTFILE='c:\\temp\\data.sav'. COMPUTE break_v=(id=1). AGGREGATE /OUTFILE=* /BREAK=break_v /var1_1 = SUM(var1). DO IF break_v=1. WRITE OUTFILE 'c:\\temp\\temp.sps' /"DEFINE !sum_1()"/var1_1/"!ENDDEFINE.". END IF. EXE. INCLUDE 'c:\\temp\\temp.sps'. GET FILE='c:\\temp\\data.sav'. DEFINE !doit(nb_loop=!TOKENS(1)) !DO !cnt=1 !TO !nb_loop COMPUTE !CONCAT(var,!cnt)=!cnt. !DOEND !ENDDEFINE SET MPRINT=yes !doit nb_loop=!sum_1. SET MPRINT=no EXECUTE. |
Related pages
...