Абриаль 2.0 http://www.artint.ru/packin/abrial А.И.Пацкин [mailto:aleksandr@tochka.ru]
README 2.0 ] Абриаль 2.0 ] Введение (1.6) ] Обзор (1.6) ] Публикации ] Глоссарий ] Оглавление ] Руководство ] Выше ] _ operations ] A ] B ] C ] D ] [ E ] F ] G ] H-I ] L ] M ] N ] O ] P ] R ] S ] T-X ]

E




ELSE  Отделение тела блока "ИНАЧЕ" внутри условия.


Формат:

<#{IF | IFNOT} condition> [then-body] [<#ELSE>[else-body]]<#/>

Аргументы/Атрибуты:

condition - условие
then-body - тело блока для выполняющегося условия condition
else-body - тело блока для невыполняющегося условия condition

Описание:

Отделяет блок else-body внутри IF, IFNOT.  

Признаки:

составной, энергичный. 

Использование:  

 

Примечание:

 

Пример:

<#IF (FILEEXIST "MyDB.ab")>
 <#LOAD "MyDB.ab">
<#ELSE>
 <#ERROR "Файл MyDB.ab отсутствует!">
</#> 


EMPTY  Проверка на пустоту аспекта объекта.


Формат:

<#EMPTY [[AN=]aspect-name | A=aspect] [[O=]object] [D=dbname]>

Аргументы/Атрибуты:

aspect-name - имя аспекта
aspect - идентификатор аспекта
object - идентификатор объекта
dbname - путь к файлу БД

Описание:

Проверяет, имеет ли объект связи по аспекту. 

Аспект может быть указан числовым идентификатором aspect или своим именем aspect-name, без атрибута "AN=" ожидается в качестве первого аргумента. По умолчанию используется текущий аспект.

Объект может быть указан числовым идентификатором object, без атрибута "O=" ожидается в качестве второго аргумента. По умолчанию используется текущий объект.

Если указана БД dbname, отличная от текущей, то необходимо явно указывать объект и аспект. По умолчанию используется текущая БД. 

Возвращает непустое значение (символ "пробел"), если указанный аспект объекта пустой (отсутствуют связи по аспекту объекта), иначе пусто.

Признаки:

простой, ленивый. 

Использование:  

 

Примечание:

 

Пример:

<#IF (EMPTY)> <#/>


ENV  Получение значения параметров вызова страницы.


Формат:

<#ENV parameter-name

Аргументы/Атрибуты:

parameter-name - имя параметра 

Описание:

Возвращает значение параметра вызова текущей страницы с именем parameter-name, если таковой имеется, иначе пусто.

Признаки:

простой, ленивый. 

Использование:  

 

Примечание:

 

Пример:

<#COND (ENV "P") (GLOB LastP=(ENV "P"))> 


EQ  Числовое сравнение: равно.


Формат:

<#EQ source pattern [action {pattern action}* [default-action]]>

Аргументы/Атрибуты:

source - исходное выражение (число)
pattern - образцы для сравнения (число)
action - действие в случае успешного сравнения значений исходного выражения с образцом
default-action - действие в случае неуспешного сравнения с образцами

Описание:

Последовательно производит числовое сравнение "равно" значения первого аргумента source со значением четных аргументов pattern. Нечисловые значения исходного выражения или образца заменяются нулем (0). Если найден аргумент pattern, удовлетворяющий условию сравнения, выполняется единственное действие action. В случае неуспеха операции сравнения, выполняется действие default-action

Возвращает либо результат выполненного действия, если оно указано, либо непустое значение (символ "пробел"), если указаны всего два аргумента и результат сравнения - истина, либо пусто.

Признаки:

простой, ленивый.  

Использование:  

 

Примечание:

Пример:

<#EQ (x0) (x1) ((x0) " = "(x1)) (x2) ((x0) " = "(x2))>


ERROR  Обработка ошибки.


Формат:

<#ERROR [error-text]> 

Аргументы/Атрибуты:

error-text - текст сообщения об ошибке

Описание:

Либо пишет в поток ошибок, либо возвращает его. 

Если указан аргумент error-text, пишет его в поток ошибок - добавляет текст ошибки в список ранее полученных таким же образом ошибок, а также ошибок, сгенерированных программой. 

Если аргумент не указан, соединяет в единый текст все ошибки в том порядке, в котором ранее были записаны в поток ошибок, поток ошибок очищается.

Возвращает полученный текст накопленных ошибок, если не указан аргумент, иначе пусто. 

Признаки:

простой, энергичный.

Использование:  

 

Примечание:

 

Пример:

<#ERROR "Ошибка 1">
<#ERROR "Ошибка 2">
<#ERROR>

Генерируем ошибки и выводим их. 


EXEC  Выполнение внешней программы.


Формат:

<#EXEC [PATH=]path [[ARG=]parameters] [TYPE=[START | EXPLORE | PRINT | CMD | OVER | DETACH | NOWAIT | WAIT]] > 

Аргументы/Атрибуты:

path - путь к файлу или папке либо команда операционной системы.
parameters - параметры вызова программы

Описание:

Выполняет одно из действий в соответствии со значением атрибута "TYPE=". По умолчанию "TYPE=START". С атрибутом "PATH=" или без него, первым аргументом, в зависимости от аргумента атрибута "TYPE=", ожидается path - это может быть команда ОС либо имя файла программы, документа или папки. Для аргументов атрибута "TYPE={OVER | DETACH | NOWAIT | WAIT}" с атрибутом "ARG=" или без него, вторым аргументом, могут быть указаны параметры parameters передаваемые программе при вызове - это строка в которой параметры должны быть разделены символами "пробел", общая длина строки не должна превышать 260 символов.

TYPE= Действие
START - выполняет программу path ( ".exe", ".com", ".bat") либо стартует документ path (запускает приложение, ассоциированное с расширением файла) либо открывает папку path для просмотра. Возвращает непустое значение (символ "пробел"). (0, 2, 3, 5, 8, 11,26, 27, 28, 29, 30, 31, 32)-возможные ошибки. 
EXPLORE - открывает указанную папку path для просмотра. Возвращает непустое значение (символ "пробел"). (0, 2, 3, 5, 8, 11,26, 27, 28, 29, 30, 31, 32)-возможные ошибки. 
PRINT - выводит документ path на печать. Возвращает непустое значение (символ "пробел"). (0, 2, 3, 5, 8, 11,26,27,28,29,30,31,32)-возможные ошибки.
CMD - выполняет команду операционной системы path или запускает программу path ( ".exe", ".com", ".bat"). В случае успеха возвращает хэндл приложения - число больше 31, иначе код ошибки [0..31] (0,2,3,11)-возможные ошибки..
OVER - запускает с параметрами parameters программу path ( "*.exe", "*.com", "*.bat" ) вместо себя - после запуска программы текущее приложение (Абриаль) закрывается (дочерний процесс располагается в памяти прежде занятой родительским процессом). В случае успеха возвращает хэндл дочернего процесса - число больше 32, иначе код ошибки [0..32], (2,8,19,20,21)-возможные ошибки, (-1) - ошибка запуска.
DETACH - запускает с параметрами parameters программу path ( ".exe", ".com", ".bat") в фоновом режиме (продолжается выполнение родительского процесса, параллельно запускается дочерний процесс в фоновом режиме / без доступа ввода с клавиатуры и вывода на дисплей - так в хелпе spawnlp/). В случае успеха возвращает хэндл дочернего процесса - число больше 32, иначе код ошибки [0..32], (2,8,19,20,21)-возможные ошибки, (-1) - ошибка запуска.
NOWAIT - запускает с параметрами parameters программу path ( ".exe", ".com", ".bat") и не ждет окончания её выполнения (продолжается выполнение родительского процесса, параллельно запускается дочерний процесс). В случае успеха возвращает хэндл дочернего процесса - число больше 32, иначе код ошибки [0..32], (2,8,19,20,21)-возможные ошибки, (-1) - ошибка запуска.
WAIT - запускает с параметрами parameters программу path ( ".exe", ".com", ".bat") и ждет окончания её выполнения (запускает дочерний процесс, родительский процесс ожидает завершения дочернего). Возвращает числовой результат завершения выполнения дочернего процесса (0) - для нормального завершения, иначе код ошибки [1..32], (2,8,19,20,21)-возможные ошибки, (-1) - ошибка запуска.

Коды возможных ошибок:
0 - системе не хватает памяти или ресурсов;
2 -  указанный файл или путь не найден;
3 - указанный путь не найден;
5 - ОС не имеет доступа к указанному файлу;
8 - недостаточно памяти, чтобы закончить действие;
11 - файл не является запускаемым приложением Win32 (не "*.exe", "*.com", "*.bat");
19 - недопустимый аргумент;
20 - слишком длинный список аргументов;
21 - недопустимый формат запускаемого приложения.
26 - произошло нарушение прав доступа;
27 - ассоциация с именем файла неполна или недействительна;
28 - транзакция DDE не может быть завершена - закончилось время обработки транзакции;
29 - транзакции DDE потерпела неудачу;
30 - транзакция DDE не может быть завершена - обрабатываются другие транзакции;
31 - с указанным расширением файла не ассоциировано приложение;
32 - указанная DLL не найдена.

Для поиска указанного файла path используется стандартный алгоритм ОС: если в имени файла отсутствует расширение или точка, ищет точное имя файла, если файл не найден, ищет файл сначала с расширением ".exe", потом ".com", затем ".bat"; если же расширение имеется, ищет только точное имя файла; если имеется точка без расширения, ищет только имя файла без расширения; если в имени файла явно не указан путь, ищет сначала в директории откуда запущено текущее приложение (Абриаль), затем в текущей директории, затем в директории Windows \System, затем директории Windows, далее в директориях из списка переменной окружающей среды ОС "PATH".

За исключением "TYPE=OVER", после запуска активизируется и показывается окно текущего приложения (Абриаль), если окно минимизировано или максимизировано, восстанавливает к его первоначальному размеру и положению на экране. 

Признаки:

простой, ленивый. 

Использование:  

 

Примечание:

 

Пример:

<#EXEC "c:\my\file.exe" ARG="p" TYPE=WAIT> 


 

Все права защищены. © 2000-2003 РосНИИ ИИ
http://www.artint.ru
Copyright. © 2000-2003 by RRIAI
Александр Иосифович Пацкин [mailto:aleksandr@tochka.ru].
07 марта, 2004

К началу документа.