Абриаль 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 ]

P


PARAM  Установка именованных параметров макроса или функции.


Формат:

<#PARAM {variable-name[=value]}+> 

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

variable-name - имя локальной переменной
value - значение по умолчанию

Описание:

Локальным переменным variable-name, которым внутри макроса или функции не присвоены значения, либо устанавливает значения value, если для очередной переменной variable-name указан аргумент value, либо устанавливает значения параметров вызова макроса или функции в той же позиции, в которой указана переменная, если не указан аргумент value для очередной переменной. Если внутри макроса или функции перед вызовом PARAM было присвоено непустое значение переменным, указанным в PARAM, значения таких переменных не изменяются.

Ничего не возвращает.

Признаки:

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

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

 

Примечание:

 

Пример:

<#MACRO MyMacro>
<#PARAM x y=0 z>
... macro-body ... 
<#/>

При вызове макроса <#MyMacro 1 3 4>  параметры примут значения: x=1 y=0 z=4. 


PATH  Операции с именами файлов.


Формат:

<#PATH {{DIR | DRIVE | EXT | EXPAND | NAME | PATH | DLMAPP | DLMCUT}=file-name} | {CHANGE=file-name TO=file-extension} | {MATCH=file-name MASK=mask} | {TYPE={CURR | HOME | DBASE | TEMP}}

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

file-name - строка с именем файла или список имен файлов (только для MATCH)
file-extension - расширение файла
mask - маска

Описание:

Выполняет операции над именами файлов в соответствии с указанным атрибутом.

Атрибут Действие
DIR - возвращает путь к директории файла без расширения, названия файла и обратного слэша на конце (символ "\"), если исходная строка содержит путь, иначе пусто.
DRIVE - возвращает имя логического диска, включая двоеточие на конце (символ ":"), если исходная строка содержит имя логического диска, иначе пусто.
EXT - возвращает расширение файла. 
EXPAND - возвращает полный путь к файлу, если в исходной строке указан относительный путь. 
NAME - возвращает название файла с расширением без пути к директории.
PATH - возвращает путь к директории файла, включая обратный слэш на конце (символ "\"), без расширения и названия файла, если исходная строка содержит путь, иначе пусто.
DLMAPP - добавляет в конец строки file-name обратный слэш (символ "\"), если таковой отсутствует.
DLMCUT - удаляет из конца строки file-name обратный слэш (символ "\"), если таковой присутствует.
CHANGE - изменяет расширение указанного файла на новое расширение file-extension, указанное с атрибутом "TO=".
TO - указывает строку с новым расширением (только вместе с атрибутом "CHANGE=")
MATCH - возвращает список имен файлов состоящий только из тех имен, которые соответствуют маске mask, указанной с атрибутом "MASK=", если маска не указана возвращает пусто. 
MASK - указывает маску mask, по которой производится поиск совпадений в исходном тексте, указанному с атрибутом "MATCH=". Маска состоит из:
1) символов.  Каждый символ маски должен соответствовать единственному символу в исходной строке. Сравнение нечувствительно к регистру.
2) наборов символов. Каждый набор начинается с открывающей скобки "[" и заканчивается закрывающей скобкой "]". Между скобками - элементы набора. Каждый элемент - символ или диапазон. Диапазоны определяются начальным символом диапазона, далее черта (-), и заключительным символом. Не используйте пробелы или запятые для определения элементов набора. Набор должен соответствовать единственному символу в исходной строке. Символ исходной строки соответствует набору, если он имеется в наборе, или он находится в одном из диапазонов в наборе. Символ находится в диапазоне, если он соответствует начальному символу диапазона, конечному символу, или находится между ними. Все сравнения нечувствительны к регистру. Если первый символ после открывающей скобки набора - знак восклицания (!), то набор соответствует любому символу, который не находится в наборе.
3) групповых символов. Групповые символы - звездочка "*" или знак вопроса "?". Звездочка соответствует последовательности любой длины произвольных символов исходной строки. Знак вопроса соответствует единственному произвольному символу исходной строки.
TYPE - возвращает в зависимости от значения аргумента атрибута "TYPE=":
CURR- текущую директорию;
HOME- директорию, где находится программа (Абриаль);
DBASE- директорию текущей БД;
TEMP- временную директорию ОС. 

Признаки:

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

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

 

Примечание:

 

Пример:

<#SET ext=(PATH EXT=(fname))>

Присваиваем переменной ext строку с расширением файла имя которого находится в переменной fname. 


PORTION  Установка сегмента повтора внутри цикла.


Формат:

<#PORTION rep-number> [portion-body] <#/>

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

rep-number - количество повторений
portion-body - тело порции

Описание:

Задает внутри цикла сегмент повтора portion-body заданное в rep-number количество раз. Разделяет выдачу на порции заданного размера. В цикле перебираются шаги объемлющего цикла и поочередно устанавливает контекст для них. При выходе из сегмента повтора выполняется завершение (и, если цикл еще не окончен - начало) объемлющего цикла. Сегмент повтора всегда выполняется заданное число раз, даже тогда, когда объемлющий цикл оканчивается при неоконченном сегменте повтора. Таким образом, например, в HTML-таблицах формируется заданное число элементов, (строк, столбцов, ячеек), в том числе и не заполненных содержанием.

Возвращает объединенный результат вычислений тела порции.

Признаки:

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

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

 

Примечание:

 

Пример:

<TABLE border=21 width="100%">
<#FORALLOBJ (ITEMS) N=CLASS C=CLASS >
 
<TR><#PORTION 5> <TD><#NAME></TD> <#/></TR> 
<#/>
</TABLE>  

выводим имена всех классов текущей БД в таблицу порциями по 5 в строке.


 

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

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