Изменение алгоритма обработки в зависимости от имени файла
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | *ВОПРОС: Как составить синтаксис, который бы исполнял те или иные команды в зависимости от имени файла данных? *ОТВЕТ. Автор: rlevesque@videotron.ca. *Попробуйте следующий подход:. set mprint=on. * Создадим 3 файла данных для примера. DATA LIST LIST /x1(F8) x2(F8). BEGIN DATA. 2 1 1 2 5 3 END DATA. SAVE OUTFILE='C:\\temp\\std_data.sav'. DATA LIST LIST /y1(F8) y2(F8). BEGIN DATA. 5 2 4 3 4 3 END DATA. SAVE OUTFILE='C:\\temp\\XXdata.sav'. DATA LIST LIST /z1(F8) z2(F8). BEGIN DATA. 8 3 8 1 5 2 5 6 END DATA. SAVE OUTFILE='C:\\temp\\XYdata.sav'. ****** Определим макрос. DEFINE !doit (filenam=!TOKENS(1)) get file=!QUOTE(!CONCAT('C:\\temp\\',!filenam,'.sav')). !IF ((!filenam !NE 'XXdata') !AND (!filenam !NE 'XYdata')) !THEN /*выполняем стандартный анализ (с переменными X1,X2). FREQ VAR=x1 x2. !IFEND !IF (!filenam !EQ 'XXdata') !THEN /*выполняем нестандартный анализ (с переменными: Y1,Y2). FREQ VAR=y1 y2. !IFEND !IF (!filenam !EQ 'XYdata') !THEN *выполняем нестандартный анализ (с переменными: Z1,Z2). FREQ VAR=z1 z2. !IFEND !ENDDEFINE. * Вызов макроса. !doit filenam=std_data. !doit filenam=XXdata. !doit filenam=XYdata. |
Related pages
...
Navigate from here