*ВОПРОС: Как составить синтаксис, который бы исполнял те или иные команды в зависимости от имени файла данных? *ОТВЕТ. Автор: 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.