Попарное использование переменных из аргумента макроса
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 | * ВОПРОС: В макрос передаётся чётное число имён переменных. Как мне использовать их пара за парой?. * ОТВЕТ. Автор: rlevesque@videotron.ca. * Если вопрос не слишком понятен, всё станет яснее, когда вы запустите синтаксис и посмотрите на результат. * Данный синтаксис может быть полезен в том случае, когда число передаваемых переменных может меняться. SET MPRINT=yes. * Смоделируем данные. INPUT PROGRAM. LOOP #cnt=1 TO 100. DO REPEAT var=var001 var002 var002a var004 varc varz break1 ct. COMPUTE var=RND(UNIFORM(5)). END REPEAT. END CASE. END LOOP. END FILE. END INPUT PROGRAM. SET MPRINT=yes. *Определяем макрос. DEFINE !macro (!POS=!CMDEND) !LET !cnt="" !DO !var !IN (!1) !LET !cnt=!CONCAT(!cnt," ") !IF (!LEN(!cnt)=1) !THEN !LET !arg1=!var !ELSE !LET !arg2=!var TABLES FORMAT=ZERO /PTOTAL=T1'YTD 2000' /TABLE CT + !arg1 + !arg2 BY break1 /STATISTICS=COUNT ('') CPCT (''(PCT4.0):break1 ). !IFEND !IF (!LEN(!cnt)=2) !THEN !LET !cnt="" !IFEND !DOEND !ENDDEFINE. * Вызов макроса. !macro var001 var002 var002a var004 varc varz. |
Related pages
...