Выполнение отдельных блоков синтаксиса
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. |
Related pages
...