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
* ВОПРОС:
>В системе SAS существует способ комментирования в синтаксных файлах не отдельных
>команд, а целых их блоков. Такием комментарии начинаются с /* и заканчиваются */ (возможно,
>наоборот - я мог напутать). Кто-нибудь знает, есть ли что-либо подобное в SPSS?
>Допустим, у меня есть 100 команд синтаксиса, которые выполняют 5 схожих между собой операций.
>Каждая операция выполняется 20 командами (назовём блоки a, b, c, d, e). И я хотел бы иметь возможность
>запускать, например, блоки b и e, игнорируя блоки a, c, d. Если я не хочу выделять нужные 
>куски синтаксиса и выполнять текущие команды, я должен закомментировать (поставить *)
>перед каждой командой исключаемых частей кода. Если бы можно было ограничить комментариями 
>ненужные куски, мне не надо было бы просматривать 100 строк в поисках символов (.) и (*).

>Любая помощь горячо приветствуется.

* РЕШЕНИЕ размещено в новостной группе SPSS 08.07.2001, автор: rlevesqeu@videotron.ca.

Один из вариантов решения: 
1. Сохранить эти 5 частей синтаксиса в 5 разных файлов синтаксиса с именами a.sps, b.sps, c.sps, и т.д.

2. Создать новый файл синтаксиса (с именем, скажем, All5.sps) из следующих 5 строк:
INCLUDE FILE="(path)\\a.sps".
INCLUDE FILE="(path)\\b.sps".
INCLUDE FILE="(path)\\c.sps".
INCLUDE FILE="(path)\\d.sps".
INCLUDE FILE="(path)\\e.sps".

3. Теперь, если вы выполните файл All5.sps, будут исполнены все 5 частей синтаксиса.
4. А если вы захотите выполнить только b и e, всё, что нужно сделать - это поставить
"*" перед строками 1, 3 и 4. 

В качестве альтернативы, может быть определён примерно следующий макрос:

DEFINE !dothis (!POS=!CMDEND)
!LET !path="c:\\temp\\"
!DO !nb !IN (!1)
INCLUDE FILE=!QUOTE(!CONCAT(!path,!nb,".sps")).
!DOEND
!ENDDEFINE.

...и потом вызывать этот макрос примерно так:
!dothis b e.
для того, чтобы выполнить только части b и e.