Выше достаточно подробно разобран только один процесс. Остальные процессы программируются совершенно сходным образом:
– запуск процесса начинается с имени процесса и восклицательного знака перед ним;
– все параметры имеют то же имя, что и в графическом интерфейсе процесса;
– имена файлов предваряются символом амперсанда «&»;
– имена полей предваряются символом звездочки «*»;
– параметры предваряются помечаются символом «собаки» – «@»;
– имена файлов и полей заключаются в скобки;
– значения числовых параметров указываются с помощью знака равенства;
– параметры друг от друга отделяются запятыми.
Внимание: описание параметров запуска процесса не может заканчиваться запятой, т. к. это приведет к зависанию макроса (но не приведет к появлению ошибки). Возможна и другая неприятность: потеря запятой. Все параметры, которые вы с такой тщательностью подбирали, но которые указаны после «потерянной» запятой, будут проигнорированы. И здесь два варианта: либо указанные вами параметры необязательные и процесс будет выполнен с параметрами по умолчанию, либо макрос остановится, так как один из процессов не нашел всех нужных ему параметров. Второй вариант лучше – вы хотя бы увидите, что в макросе ошибка. В общем, к запятым в языке макросов надо относиться очень внимательно.
Пожалуй, некоторыми особенностями обладает только процесс EXTRA. Описание параметров у него завершается на строке 42 параметром @APPROX=0.0. Причем, после этого параметра нет запятой (то есть описание параметров процесса завершено). Основной функционал содержится в строках с 44 до команды GO (строка 47). Процесс EXTRA всегда завершается командой GO (без запятой в конце и восклицательного знака в начале).
Крайний правый знак на строке 16 приведет к зависанию макроса. Сообщение об ошибке при этом не появится. Макрос просто будет «висеть», изображая работу
Отсутствие запятой в строке 14 приведет к игнорированию параметров CHECKROT и ALLPTS. Ошибка в данном случае также не проявится, поскольку параметры необязательные
Можно было заметить, что при разборе макроса ничего не было сказано о вкладке Retrieval, на которой указываются логические условия выполнения процессов. Эти условия в макросе указываются точно так же, как они указываются при «обычном» запуске процесса. От предыдущих параметров эти условия также отделяются запятыми. То есть вот такое условие:
!COPY $IN (holes),&OUT (hol_rich),AU> 10
заставит Datamine скопировать из файла holes в файл hol_rich пробы с содержаниями золота не ниже 10 г/т. Если требуется указать более одного условия, они перечисляются через запятую:
!COPY $IN (holes),&OUT (hol_rich),AU> 10,AG> 50
При этом, как и в «ручном» запуске процесса оба условия будут выполняться одновременно – то есть во втором случае в файл hol_rich будут скопированы пробы с содержанием золота не меньше 10 г/т и серебра не менее 50 г/т.
Ну и, завершая разбор первого макроса, следует упомянуть, что макрос завершается строкой 51, на которой сообщается, что макрос завершен: END.
Перед решением заданий
Задания дальше по книге можно решать двумя способами:
– Набрать соответствующий текст макроса и попытаться запустить.
– Внимательно прочитать текст макроса и попытаться понять, как он будет работать.
Мы бы очень хотели, чтобы вы выбрали второй путь. Собственно, для этого тексты макросов приведены в виде картинок. Умение бездумно набирать и запускать макросы – это немного не тот навык, который мы бы хотели вам передать. Огромная просьба: не пытаться мухлевать, а постараться реально решать задания. В конце концов, мы не в школе, родителей к директору никто вызывать не собирается, на второй год оставлять – тоже.
$ Задание 3.7
Чем завершится выполнение данного макроса?
A) Создастся точная копия входного файла с именем holes_extra
B) Зависанием Datamine до принудительного завершения пользователем работы макроса
C) Всем значениям в существующем поле AU присвоится 0. Если поле AU отсутствовало во входном файле, оно создастся
D) Процесс выполнится, но выходной файл не создастся
E) Ошибкой
$ Задание 3.8
Чем завершится выполнение данного макроса?
A) Зависанием Datamine до принудительного завершения пользователем работы макроса
B) Всем значениям в существующем поле AU присвоится 0. Если поле AU отсутствовало во входном файле, оно создастся. Параметр APPROX проигнорируется, в выходном файле также будет создано поле @APPROX, значение которого будет равно 0
C) Процесс выполнится, но выходной файл не создастся
D) Ошибкой
E) Всем значениям в существующем поле AU присвоится 0. Если поле AU отсутствовало во входном файле, оно создастся
F) Создастся точная копия входного файла с именем holes_extra
$ Задание 3.9
Чем завершится выполнение данного макроса?
A) Зависанием Datamine до принудительного завершения пользователем работы макроса
B) Всем значениям в существующем поле AU присвоится 0. Если поле AU отсутствовало во входном файле, оно создастся
C) Процесс выполнится, но выходной файл не создастся
D) Ошибкой
E) В файл holes_extra будут скопированы записи с содержанием золота 0
$ Задание 3.10
Чем завершится выполнение данного макроса?
A) Ошибкой
B) Создастся точная копия входного файла с именем holes_extra