Одна тетрадь для двух файлов (ввод/вывод)
Я нахожусь в ситуации, когда было бы полезно использовать одну и ту же тетрадь для двух разных файлов в программе EZT. Я знаю, что в COBOL вы можете использовать OF, чтобы указать, какой файл вы хотите получить, и/или установить поля для (например, VAR1 OF INFILE). Есть ли у Easytrieve такая возможность, или мне нужно вручную определить поля с уникальными именами в программе?
Пытался использовать синтаксис, который, как я думал, существовал, где я мог бы добавить символ в конец для разделения, но похоже, что я использую это неправильно.
FILE INFILE
%COPYBOOK 1 I.
FILE OUTFILE
%COPYBOOK 1 O.
2 ответа
Есть два способа:
либо использовать уточнение имени файла, как предложено @user2675083 ( более подробную информацию см. в файлах и полях )
или вы можете использовать подстановку параметров макроса, чтобы добавить, например, префикс к имени поля и сделать его уникальным, например:
MSTART MYMAC MACRO PARM1 DEFINE &PARM1.FLD W 10 A VALUE 'HELLO' MEND * JOB INPUT NULL %MYMAC 'TST' DISPLAY TSTFLD STOP
«TST» передается макросу MYMAC в качестве позиционного аргумента (PARM1), который используется для того, чтобы сделать имя поля уникальным (после замены &PARM1.FLD становится TSTFLD).
Более подробную информацию см. в макросах процессов .