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
*(Вопрос) Мой макрос имеет 2 параметра: yfirst и ylast.
	Макрос создаёт переменные формата sXXXX, где числа
	XXXX пробегают интервал от yfirst до ylast. Как мне выполнить подкоманду 
	/KEEP команды SAVE OUTFILE чтобы потом построить листинг переменных sXXXX?.

*(Ответ) Размещён в новостной группе spss. Автор: Raynald Levesque, 15.05.2002.


DATA LIST LIST /a.
BEGIN DATA
1
END DATA.
LIST.

DEFINE !test(yfirst=!TOKENS(1) /ylast=!TOKENS(1))
!LET !list=!NULL
/*Вычисленим какие-то значения для sXXXX. */
!DO !cnt=!yfirst !TO !ylast
COMPUTE !CONCAT('s',!cnt)=!cnt.
!LET !list=!CONCAT(!list,' ',!CONCAT('s',!cnt))
!DOEND

/*Сохраним переменные sXXXX во внешний файл */
SAVE OUTFILE='c:\\temp\\test.sav' /KEEP=!list.
!ENDDEFINE.

SET MPRINT=yes.
!test yfirst=1990 ylast=2002.
SET MPRINT=no.

* Обратите внимание, данный метод работает даже когда переменные sxxxx расположены в файле непоследовательно.