Базовой технологии создания систем обработки и отображения сложно организованной информации




Скачать 493.03 Kb.
НазваниеБазовой технологии создания систем обработки и отображения сложно организованной информации
страница1/2
Дата публикации06.03.2013
Размер493.03 Kb.
ТипРеферат
www.litcey.ru > Информатика > Реферат
  1   2
ПОДГОТОВКА ДОКУМЕНТАЦИИ ГЛАВНОГО УПРАВЛЯЮЩЕГО ЯЗЫКА

БАЗОВОЙ ТЕХНОЛОГИИ СОЗДАНИЯ СИСТЕМ ОБРАБОТКИ

И ОТОБРАЖЕНИЯ СЛОЖНО ОРГАНИЗОВАННОЙ ИНФОРМАЦИИ

( Часть I )

СОДЕРЖАНИЕ


Введение
В НИВЦ МГУ разрабатывается инструментальный комплекс "ВИЗ"

для создания систем обработки и отображения сложно

организованной информации см. [1]). При этом возникают проблемы

создания, хранения и распространения различной документации по

отдельным компонентам комплекса (например, технологические

описания, описания команд, описания применения и др.). В виду

больших объемов создаваемой документации, насущным становится

вопрос автоматизации процессов подготовки документации в

различных формах, в том числе печатной и электронной. Общие

концепции решения этой проблемы рассматриваются в работах [2,3].

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

командам языка ВИЗ, основывающаяся на динамических структурах

данных, являющихся инструментальным средством языка ВИЗ.

Работа выполнена при поддержке Российского фонда фундаментальных

исследований, грант 98-07-90018 .


^ 1. Принятая технология автоматизированной подготовки

документации
В основе автоматизированной подготовки документации лежит

концепция создания базы данных текстовых документов, где

документ представлен в некотором структурированном виде,

позволяющем достаточно однозначно трактовать все фрагменты этого

документа. Используя эту базу данных в качестве входной

информации, можно создавать различные текстовые форматы одного и

того же документа. При этом необходимые атрибуты для

формирования конкретного формата документа могут быть либо

записаны в самой базе данных, либо задаваться в качестве входных

параметров. При создании базы данных можно снабжать фрагменты

исходной информации дополнительными атрибутами, которые могут

быть использованы при генерации выходных файлов.
Существенным ограничением данного подхода является то, что

исходная текстовая документация должна отвечать определенным

требованиям, т.е. иметь служебные символы разметки и содержать

конструкции определенной структуры. Однако очевидные

преимущества автоматизированной подготовки целого комплекса

документов, перекрывают эти недостатки.
Таким образом, технология автоматизированной обработки

документации состоит из двух этапов: создание базы данных на

основе исходной текстовой документации, оформленной

определенным образом, и генерация выходных файлов различных

текстовых форматов на основе этой базы данных (БД).

^ 1.1. Подготовка документации по языку ВИЗ
В НИВЦ МГУ разработана система автоматизированной

подготовки документации на базе Главного управляющего языка ВИЗ,

позволяющего представить базу данных текстового документа в виде

структуры, отражающей конструкцию исходного документа в заранее

определенных элементах этой структуры. При этом обеспечивается

возможность динамически строить элементы структуры по мере

анализа исходного текста. Создаваемые структурные базы данных

являются исходными объектами для генерации файлов различных

текстовых форматов - ASCII, NG, RTF, HTML (см. [3,4,5]).
Основная технологическая цепочка для подготовки

документации по описанию команд языка ВИЗ включает в себя

последовательность шагов, изображенную на схеме ниже.
БД каталога содержит каталог команд языка ВИЗ и

предназначена для определения в тексте документа ссылок на

другие команды. В силу этого БД каталога должна существовать до

построения Основной БД, содержащей описания команд. Кроме того

БД каталога содержит и другую дополнительную информацию,

которая используется при генерации выходной документации.

Управление процессом подготовки документации осуществляется

посредством меню, что обеспечивает пользователям удобный

интерфейс. Схема подготовки документации команд имеет вид:
________________

|Каталог команд |

|(текстовый файл)|

|________________|

|

________|__________ ________________

| БД каталога | |Описания команд |

|(библиотечный файл)| |(текстовый файл)|

|___________________| |________________|

| | |

| |________________________|

| |

| ________|__________

| | Основная БД |

| |(библиотечный файл)|

| |___________________|

| |

|_______________|

|

|

_______ ______ ______ ______

| ASCII | | NG | | RTF | | HTML |

| файл | | файл | | файл | | файл |

|_______| |______| |______| |______|

Далее рассмотрим подробнее отдельные компоненты

системы подготовки документации на языке ВИЗ.

^ 2. Требования к оформлению входной текстовой документации


Текстовая документация может содержать различную информацию

- описание команд языка, описание технологий и средств языка и

др. Каждый вид документации должен быть оформлен в соответствии

с определенными правилами, которые рассматриваются в данном

разделе.
^ 2.1. Правила оформления описания команды
Описание команды состоит из разделов, начинающихся со

служебных символов и имеющих следующее смысловое значение:
##c - дата и общий вид обращения к команде с параметрами,

##s - название команды (краткое описание),

##p - описание параметров команды,

##f - полное описание команды,

##x - примеры обращения к команде,

##e - конец описания команды,

##a - список команд, тематически связанных с описываемой

командой (раздел может отсутствовать).
Например (текст приведен как строки комментариев):
* ##c 02.10.94 bvar_set viz

* bvar_set bv_name bv_ofs format v1 [v2 v3 ...vN]

* ##s

* Формирование двоичного вектора чисел

* ##p Параметры:

* bv_name - имя результирующей двоичной переменной,

* bv_ofs - смещение от начала двоичной переменной в байтах,

* format - формат преобразования чисел из текстового

* представления (см. форму что и в bvar_get),

* v1,...vN - числа, которые должны быть преобразованы в

* двоичное представление.

* ##f

* В переменную RET_CODE записывается количество байт,

* записанных в двоичную переменную bv_name.

* ##x Например:

* bvar_set bv_name 0 2g 1.1 2.2

* bvar_set bv_name 0 "1d 1g" 10 10.1

* ##e
Содержательная часть разделов ##p, ##f, ##x может

отсутствовать, но наличие в описании этих служебных символов

обязательно. Описание команды в разделах ##p и ##f должно быть

определенным образом структурировано и удовлетворять следующим

условиям:
- все параметры одного уровня должны начинаться с одной

позиции,

- текст описания параметров одного уровня должен быть

выровнен по левому краю,

- разделителем между именем параметра и его описанием

является символ тире "-",

- двоеточие ":" в конце строки является признаком перехода к

параметрам следующего уровня, либо к началу

структурированного текста,

- описание следующего уровня должно начинаться с отступом

вправо относительно предыдущего,

- описание параметров является частным случаем

структурированного текста, в котором допустимы следующие

конструкции:
* NN. |----------текст--------------| N - число или буква

*

* - |----------текст--------------|

*

* ident - |----------текст--------------|

*

* |----------текст--------------| блок, начинающийся с одной

* |----------текст--------------| позиции и не содержащий в

* |----------текст--------------| первой строке символ "-"
- если текст параметра непосредственно содержит

структурированный текст, то символ ":" необходимо ставить

сразу после символа разделителя "-"; например:

* bit0(001) - :

* =0 - вывод только координат курсора,

* =1 - вывод координат курсора и значений функции

* в точке.

- если размер одного из параметров текущего уровня превышает

размер остальных параметров этого уровня, то после

разделителя "-" необходим перенос текста параметра на

следующую строку, но с той же позиции, с которой начинается

текст всех остальных параметров этого уровня; например,

* type[0]=f - чтение области определения функции, оставшиеся

* символы ( type[1], type[2] ) не важны,

* type[0]=p,t,i,u,n -

* чтение текущих координат окна, тип координат

* задан первыми двумя символами параметра type

* как в команде coords_show (pa, tr, ...).


^ 2.2. Правила оформления CPP-процедур
CPP-процедура, написанная на языке Си, содержит несколько частей: заголовок, описание, прототип, параметры, тело процедуры. В БД CPP-процедур заносятся только первые четыре части, которые должны быть описаны в соответствии с определенными правилами.
Заголовок процедуры начинается с первой позиции строки символами "//" и представляет собой строку вида: //<не менее 5-ти "*"> <имя процедуры> < не менее 3-х "*"> .
Описание процедуры начинается с символов "//" с первой позиции строки, за которыми после не менее одного пробела следует английский текст, и заканчивается строкой "//" без последующего текста.
Прототип процедуры - первый оператор процедуры на языке Си.
Параметры процедуры начинается с символов "//" с первой позиции строки, за которыми после не менее одного пробела следует английский текст, признаком конца является символ "{" в первой позиции строки, с которого начинается описание тела процедуры на языке Си.
Например:
//********************************* tkw_locator_ini *****

// Initializes all types of locator

// (keyboard, mouse, two digitizers)

//

int tkw_locator_ini()

// returns 0 if OK, -1 if failed

{

. . .
Отсутствие заголовка и прототипа приводит к нарушению адекватного анализа CPP-процедуры при занесении ее в БД, отсутствие описания и параметров к глобальным нарушениям анализа не ведет, но присутствие этих разделов желательно.
В CPP-процедурах могут содержаться специальные теги, имеющие вспомогательное значение и не влияющие на описания отдельных частей самой процедуры:
// - начало блока комментариев,

//
- конец блока комментариев,

//
- строка для внесения в протокол при создании БД.
Один файл ДОС может содержать несколько CPP-процедур. Файлы с CPP-процедурами собираются в подкаталоги, как правило, по тематическим критериям, а те, в свою очередь, - в единый каталог.

^ 2.3. Правила оформления входных документов
Входной документ состоит из заголовка и разделов, имеющих иерархическую номерную структуру. Первая строка текстового файла должна содержать информацию о кратком имени документа (до 8 символов) и дате создания документа (число.месяц.год). Таким образом первая строка состоит из трех лексем и имеет вид:
<краткое имя документа> от/from <дата>
Все строки, образующие имя документа, начинаются со служебных символов ##t , в том числе и пустые строки, входящие в наименование документа. Начало текста документа определяется служебной строкой #:Begin . Заголовок каждого раздела содержит служебные символы ##n перед текстом заголовка, а признаком конца раздела является служебная строка ##e . Ниже приводится пример начала входного документа:
menu_def от 22.05.97

^ ИНСТРУМЕНТАЛЬНЫЙ КОМПЛЕКС "ВИЗ"

ДЛЯ РАЗРАБОТКИ ПРИКЛАДНЫХ ПРОГРАММНЫХ СИСТЕМ

С ГРАФИЧЕСКИМ ПРЕДСТАВЛЕНИЕМ ДАННЫХ

##t ТЕКСТОВЫЕ И ГРАФИЧЕСКИЕ МЕНЮ

#:Begin

##n 1. Текстовое меню

##e

##n 1.1. Определение текстового меню

. . .

##e

##n 1.2. Параметры текстового меню

. . .

##e

. . .
Внутри каждого раздела может находиться структурированный текст, который должен быть оформлен по правилам, приведенным в п.2.1. Допускается отсутствие текста раздела, например в разделе, определяющем только заголовок для ниже стоящих подразделов.
В тексте входного документа допустимы внешние ссылки как на сам документ, так и на другой документ из текстовой БД. Ссылки представляются в документе в виде одной лексемы и их вид определяется по индентификатору ссылки (п. или пп.). Приведем ниже полный синтаксис ссылки:
<ссылка>:=<идентификатор ссылки><описание ссылки>[,<описание

ссылки>]

<идентификатор ссылки>:= п.|пп.

<описание ссылки>:=<номер>|<краткое имя документа>:<номер>[,<номер>]|

<краткое имя документа>:<номер>-<номер>]

<номер>:=<число>[.]|<число>.<число>[.<число>...][.]

<число>:= 1,2,3,...

<краткое имя документа>:=<идентификатор>
Здесь <краткое имя документа> - имя указанное в первой строке текстового файла с входным документом, не превышающее 8-ми символов, <номер> - номер раздела или подраздела документа, отражающий иерархическую структуру документа (номера уровней отделяются друг от друга точкой, присутствие последней точки не обязательно). После идентификатора ссылки "п." Может находиться только одно описание ссылки, а после идентификатора ссылки "пп." - допускается список описаний ссылок, отделяемых друг от друга символом "," . Список номеров всегда относится к текущему документу или к документу, определяемому по предшествующему краткому имени, отделяемому символом разделителем ":". В случае задания списка ссылок, разбиение всей ссылки в конце текущей строки можно производить только по символу разделителю "," или "-". Ниже приводятся примеры допустимых видов ссылок:
- п.1

- п.1.

- пп.1,1.2,1.2.1.

- п.menu_def:3.

- пп.menu_def:3.1,menu_call:2.

- пп.menu_def:3.1,3.2

- пп.menu_call:3.-7.

- конец текущей строки : ... <текст> ... пп.1,1.2,

первая лексема следующей строки: 1.2.1. ... <текст> ...

- конец текущей строки : ... <текст> ... .menu_def:3.

первая лексема следующей строки: 7.,12. ... <текст> ...

^ 3. База данных (БД) для каталога команд

База данных для каталога команд строится на основе

текстового файла viz_cat.txt, расположенного в текущем каталоге.

Этот файл создается и корректируется разработчиком вручную и

состоит из строк вида:
<полное имя команды> <краткое имя команды> <имя каталога ДОС>
Например,

...

curve_make curv_mak v_dcm_01

curve_view curv_vie v_dcm_01

data_conv data_con v_dcm_02

...
Краткое имя команды определяет имя под которым описание

данной команды, сгенерированное из основной БД в определенном

формате (формат добавляется к имени в виде расширения .txt, .ng,

.rtf, .htm), будет помещено в каталог ДОС, указанный в этой же

строке. Краткие имена введены в силу того, что имена файлов ДОС

не могут превышать восьми символов, а на имена команд это

правило не распространяется.
БД каталога команд создается при последовательном чтении

строк файла viz_cat.txt. В конкретной реализации средствами

языка ВИЗ создается структура, имеющая следующий вид:
* Структура S

* Уровень 0: [0] [1] [2]

* значение элемента: | | дата и время

* | | создания

* Уровень 1: [0] [1] ... [m] | viz_cat.txt

* имя элемента : имя команды |

* значение элемента: пробелы по длине имени |

* |

* Уровень 1: [0] [1] ... [m]

* имя элемента : имя команды

* значение элемента: <краткое имя команды> <имя каталога ДОС>

*
БД каталога обновляется, если атрибуты файла (дата и время

создания) viz_cat.txt изменились и не соответствуют тем, которые

хранятся в элементе [2]. Это обновление происходит автоматически

перед изменением основной БД.
БД каталога команд создается функцией crword, находящейся в

файле cvdoc_1.viz (описания функций процессора приводятся в

формате описания команд языка ВИЗ):
* ##c 19.07.99 crword

* crword

* ##s

* Создание БД (структуры) для каталога команд

* ##p Параметры:

* ##f

* Функция создает БД для каталога команд языка ВИЗ на основе

* файла VIZ_CAT.TXT из текущего каталога.

* ##x Например:

* ##e

^ 4. Основная БД, содержащая описания команд

На базе описания команд и документации языка ВИЗ создается

основная БД, которая в конкретной реализации средствами языка

ВИЗ представляет из себя динамическую структуру. Эта структура

либо дополняется при поступлении новой команды, либо

обновляется, если команда уже существует. Причем обновление

происходит путем удаления старого элемента структуры и

добавления в нее нового элемента.
^ 4.1. Описание структуры для создания основной БД
Головная часть структуры строится посредством команды:
call |trf_struct_make A

{

itype=2 comtab=1 isegm=1 inum=2 sspace="0 10 0 STR_COM";

[0]={ itype=2 syntab=1;}

[1]={ itype=2 syntab=1 isegm=1;}

}

#End
Элементы структуры заполняются при поступлении очередной

команды, что схематически отображается для k команд в виде:
* Структура A

* Уровень 0: [0] [1]

* | |

* Уровень 1: [0] [1] .... [k] [0] [1] .... [k]

*(синхро-таблицы) значения элементов - таблицы-заголовки для

* имена команд описания команд

*
Описание очередной команды "подвешивается" к

таблице-заголовку посредством команды:
call |trf_struct_make A

{

itype=2 inames=1 tfsize=4000|

nvlist: Data Name Strpar Text Param Textfull Sample Command;

Param={ itype=2 siflag=1; }

Textfull={

itype=1 comtab=1 ahsize=1 siflag=1 inames=1| nvlist:Str Typ;

Str={ itype=1 syntab=1; }

Typ={ itype=1 syntab=1; }}

Command={ itype=1 inames=1; }

}

#End
и создается структура следующего вида:
* Уровень 0: [0] [1]

* | |

* ... |

* Уровень 1: [0] [1] ... [k]

* |

* Уровень 2: [0] [1] [2] [3] [4] [5] [6] [7]

* имена: Data Name Strpar Text Param Textfull Sample Command

* (для k-той команды)
Здесь имена таблиц соответствуют разделам текстового

описания команды и определяют следующие элементы структуры:
Data - содержит дату создания команды,

Name - содержит имя команды,

Strpar - содержит строку параметров,

Text - содержит название команды,

Param - таблица описания параметров,

Textfull - синхро-таблицы для описания текста команды,

Sample - содержит текст примеров использования,

Command - таблица имен связанных команд.
Таблицы следующего уровня создаются по следующим правилам:
1. Param - это сложная таблица, каждый элемент которой в свою

очередь является таблицей из 2-х или 3-х элементов,

содержащих следующую информацию:

[0] - имя параметра,

[1] - описание параметра,

[2] - заголовок таблицы в том случае, если есть параметры

следующего уровня.
Таким образом параметры образуют динамическую структуру вида:
* Уровень 2: ... [4] ...

* таблица Param: |

* |

* Уровень 3: [0] [1] ... [k1]

* | | |

* | |

* Уровень 4: [0] [1] [0] [1] [2]

* параметры 1-го уровня: имя описание имя описание |

* |

* Уровень 5: [0] [1] ... [k2]

* имя описание |

* Уровень 6: [0] [1] [3]

* параметры 2-го уровня для [k1]: имя описание |

* |

...
2. Textfull - сложная таблица, состоящая из двух синхронных

таблиц, содержащих фрагменты полного описания команды и их

коды; таблица имеет вид:
* Уровень 2: ... [5] ...

* таблица Textful: |

* |

* Уровень 3: [0] [1]

* имена синхро-таблиц: Str Typ

*

*

* В элементы таблицы Str заносятся фрагменты текста, а в

* соответствующие элементы таблицы Typ - коды данного

* фрагмента:

* 0 - начало абзаца,

* 1 - продолжение текущего абзаца,

* 2 - имя связанной команды, которое упоминается в данном

* описании,

* иначе - таблица-заголовок сложной таблицы, содержащей

* структурированный текст и строящейся по аналогу

* таблицы Param.

*

* Каждый текстовый фрагмент, образующий элемент таблицы Typ,

* имеет стандартный признак конца 0a0d. Этот признак

* практически соответствует указателю конца текстовой строки

* входного документа и может использоваться для создания

* выходного документа, сохраняющего форматирование входного

* документа.
3. Command - простая таблица с именами элементов, которые

соответствуют именам связанных команд.
* Уровень 2: ... [7] ...

* таблица Command: |

* |

* Уровень 3: [0] [1] ... [n]

* имя элемента: имя связанной команды

*

*

* Эта таблица строится на основе раздела ##a из исходного

* текста описания команды и дополняется недостающими ссылками

* на связанные команды, встречающимися в тексте раздела ##f.

*

^ 4.2. Функции для создания основной БД
Создание основной БД осуществляется функциями drv_file, trf

_str _doc.viz, struc_param, str_find, находящимися в файле cvdoc

_1.viz :
* ##c 19.07.99 drv_file

* drv_file pbd

* ##s

* Головной управляющий файл для формирования БД

* ##p Параметры:

* pbd - признак создаваемой БД :

* 0 - основная БД,

* 1 - временная БД.

* ##f

* Функция осуществляет управление формированием основной

* или временной БД для описаний команд и текстовой документации

* языка ВИЗ. Имя основной БД и путь доступа к выходным файлам

* определяются значениями глобальных переменных, задаваемыми в

* управляющем меню (файл v_docstr.viz), а имя временной БД и

* путь доступа к выходным файлам устанавливается путем

* переопределения этих значений (@TF_out_path = "",

* @TF_file_str = "str_otl.lib").

*

* Временная база данных используется для отладочных целей

* и позволяет расположить выходные файлы в текущем каталоге

* для проверки их правильности.

*

* В начале работы данная функция обращается к функции

* crword, создающей БД (структуру) для каталога команд языка

* ВИЗ.

*

* Далее, считывается очередная строка из файла,

* содержащего список имен входных файлов (определяется

* значениями глобальных переменных @TF_inp_path и

* @TF_file_int), и делается обращение к функции trf_str_doc

* для загрузки описания команды в БД.

* ##x Например:

* ##e

* ##a crword trf_str_doc
* ##c 19.07.99 trf_str_doc

* trf_str_doc file_in

* ##s

* Загрузка описания команды в БД (структуру)

* ##p Параметры:

* file_in - имя файла с описанием команд в текстовом виде

* ##f

* При работе данная функция обращается к функции

* обработки структурированного текста ( struc_param ) и к

* функции поиска в строке связанных команд ( str_find ).

*

* Обработка каждого раздела описания команды и нарушение

* последовательности разделов фиксируются в протоколе

* prt_str.txt.

* ##x Например:

* ##e

* ##a struc_param str_find
* ##c 19.07.99 struc_param

* struc_param rfile

* ##s

* Загрузка структурированного текста команды в БД (структуру)

* ##p Параметры:

* rfile - имя файла с описанием команд в текстовом виде

* ##f

* Функция осуществляет разбор и загрузку

* структурированного текста, расположенного после символа ":"

* в конце строки. При обработке следующего уровня

* структурированного текста осуществляется рекурсивное

* обращение к функции. При этом начало уровня определяется по

* символу ":" в конце строки, а конец уровня - по несовпадению

* начальной позиции описания текста параметра при наличии

* параметра или по несовпадению начальной позиции текущей

* строки, если параметр отсутствует.

*

* Для унификации представления структурированного текста

* в БД, введены соглашения: исходный структурированный текст

* без параметров записывается в БД с параметром равным "\", а

* исходный структурированный текст, начинающийся с символа

* "-", записывается в БД с параметром равным "`".

*

* Строки, определяющие начало и конец уровня, фиксируются

* в протоколе prt_str.txt, что позволяет установить

* правильность структурирования исходного текста при генерации

* выходного файла и оказывается полезным при нахождении ошибок

* в исходном тексте.

*

* Поиск связанных команд осуществляется через функцию str

* _ find, которая определяет в строке конструкции, совпадающие

* с именами из общего каталога команд языка ВИЗ. Однако

* найденная конструкция может быть именем команды, если она

* удовлетворяет ряду условий: конструкции предшествует пробел,

* открывающая скобка или она является началом строки, а

* завершает конструкцию пробел, закрывающая скобка, запятая

* или точка.

* ##x Например:

* ##e

* ##a trf_str_doc
* ##c 19.07.99 str_find

* str_find nambl str lstr

* ##s

* Поиск шаблонов из БД во входной строке

* ##p Параметры:

* nambl - имя блока доступа со структурой шаблонов поиска

* str - строка поиска

* lstr - длина строки поиска

* ##f

* Осуществляется поиск во входной строке всех шаблонов,

* представляющих из себя имена команд языка ВИЗ и хранящихся в

* элементе [0] структуры с заданным именем блока доступа

* (структура содержит каталог команд и создана функцией

* crword). Поиск осуществляется путем обращения к команде

* языка ВИЗ text_replace.

*

* Результатом работы данной функции является строка

* возврата, содержащая список пар значений, определяющих

* номера шаблонов. Если не было найдено ни одного шаблона

* возвращается значение "-1".

* ##x Например:

* ##e

* ##a text_replace

^ 5. Меню для подготовки документации по языку ВИЗ

Подготовка документации осуществляется посредством

обращения к меню, которое содержится в файле v_docstr.viz и

вызывается на экран при запуске стартового файла _st_str_bat :
* Подготовка документации по языку ВИЗ

* ====================================

* ________

* | Помощь |

* |________|

* Параметры, заданные в файле v_docstr.viz:

*

* Файл со списком имен входных файлов : inp_list.txt

* Файл для записи протокола работы : prt_str.txt

* Путь доступа к входным файлам :

* Путь доступа к выходным файлам : d:\nic\v_struc\

* Файл основной базы данных : str_com.lib

* Файл временной базы данных : str_otl.lib

* Файл базы данных с каталогом команд : comm.lib

*

* _____________________ ____________________

* I. | Добавить в основную | | Создать временную |

* | базу данных | | базу данных |

* |_____________________| |____________________|

*

* _________________________

*II. | Создать ASCII/NG файлы |

* |_________________________|

* _________________________

* | Создать RTF файлы |

* |_________________________|

* _________________________

* | Создать HTML файлы |

* |_________________________|

*
Меню отражает значения глобальных параметров, используемых

при подготовке документации:
@TF_file_int - файл списка имен входных файлов (inp_list.txt),

@TF_file_prt - файл для записи протокола работы (prt_str.txt),

@TF_inp_path - путь доступа к входным файлам (),

@TF_out_path - путь доступа к выходным файлам (d:\nic\v_struc\),

@TF_file_str - файл основной базы данных (str_com.lib),

@TF_file_com - файл базы данных с каталогом команд (comm.lib).
Значения, указанные в круглых скобках, устанавливаются по

умолчанию в начале файла v_docstr.viz и при необходимости могут

быть изменены пользователем.
Список имен входных файлов, расположенный в текущем

каталоге, подготавливается заранее и состоит из строк с именами

файлов (без указания пути доступа), а также, возможно, строк

комментариев, начинающихся с символа "*" в первой позиции.
Этап создания БД включает в себя две возможности. При

добавлении в основную БД будет изменяться файл основной БД (str_

com.lib), находящийся в текущем каталоге. Расположение

создаваемых на следующем этапе выходных файлов, определяется

значениями глобальных параметров. Для отладочных целей в меню

предусмотрена возможность создания в текущем каталоге временной

БД с именем str_otl.lib. В этом случае создаваемые на следующем

этапе выходные файлы будут размещаться в текущем каталоге, а не

в каталоге, определяемом путем доступа к выходным файлам.
На этапе создания выходного файла соответствующего формата

вызывается подменю, в котором определяются конкретные параметры

форматирования выходного текста. Работа с подменю описывается в

разделах, посвященных генерации выходных файлов.

^ 6. Создание файлов в формате HTML из основной БД

Обращение к созданию файла в формате HTML осуществляется

через подменю, имеющее следующий вид:


  • Параметры для создания HTML файлов

  • ==================================

* ____

* Max размер имени параметра : | 26 |

* (в текстовых позициях) |____|

*

* Создание каталогов (0 - нет/ 1 - да):

* ___

* Алфавитный каталог : | 0 |

* |___|

* ___

* Диапазонные каталоги : | 0 |

* |___|

*

* __________________________

* | Создать файлы и каталоги |

* |__________________________|

*
Просмотр основной БД с описанием команд осуществляется

поэлементно, где каждый элемент соответствует описанию одной

команды. Последовательно анализируя структурные таблицы в

основной БД, программа генерит соответствующие разделы выходного

файла HTML. Сформированный выходной файл для каждой команды

записывается под соответствующим кратким именем с расширением

.htm в соответствующий подкаталог (имена берутся из БД каталога

команд). При установке в меню признака 1 для создания каталога,

в процессе генерации создаются каталоги, помещаемые в подкаталог

CATALG, имеющий тот же путь доступа что и выходные файлы HTML.

Алфавитный каталог команд языка ВИЗ образует файл acat.htm, а

диапазонные каталоги файлы d_01.htm - d_09.htm, которые содержат

имена файлов, входящие в соответствующие подкаталоги, указанные

в БД каталога команд.
Генерация выходного файла HTML с описанием команды

происходит всегда, если файл отсутствует в указанном

подкаталоге, либо если файл уже существует, то при условии

несоответствия даты создания исходного текстового файла,

содержащейся в существующем файле HTML и даты создания исходного

текстового файла, содержащейся в основной БД.
^ 6.1. Шаблоны для создания файла HTML
Создаваемые файлы в формате HTML для описания команд языка

ВИЗ содержат определенную последовательность разделов (последние

два раздела могут отсутствовать):
-- <дата> ------------

Команда: <имя команды>

<обращение к команде с параметрами>

<название команды>

Параметры :

<описание параметров команды>

Описание :

<полное текстовое описание команды>

Примеры :

<примеры использования команды>

Смотри также: <список связанных команд>
В основе создания файлов в формате HTML лежит "сборка"

файла из типовых конструкций выходного документа HTML. Эти

конструкции образуют шаблоны, которые обеспечивают запись в

выходной файл отдельных элементов документа HTML. Шаблоны по

сути своей являются функциями, обеспечивающими запись в выходной

файл HTML постоянных конструкций или частей строящихся

конструкций файла HTML, таких как начало и конец файла HTML,

заголовки разделов, элементы строящихся таблиц и др. Шаблоны

содержатся в файле pat_html.viz и описывают следующие функции :
BeginBody - начало файла HTML,

HorDelimiter - разделительная линия с датой,

ComandName - заголовок раздела "Команда:",

BeginSparam - начало строки команды с параметрами,

EndSparam - конец строки команды с параметрами,

BeginTitle - начало заголовка команды,

EndTitle - конец заголовка команды,

BeginAbz - начало абзаца
,

EndAbz - конец абзаца
,

Params - заголовок раздела "Параметры :",

ParamsNo - заголовок раздела "Параметры: нет",

Descript - заголовок раздела "Описание :",

DescriptNo - заголовок раздела "Описание: нет",

Example - заголовок раздела "Примеры :",

BeginAcces - заголовок раздела "Смотри также:",

BeginTable - начало таблицы,

TableRow - строка таблицы,

TableCol_1 - 1-ый столбец таблицы параметров,

TableCol_2 - 2-ой столбец таблицы параметров,

TableCol_3 - 3-ий столбец таблицы параметров,

TableCol_4 - 4-ый столбец таблицы параметров,

EndTable - конец таблицы,

BeginPre - начало преформатирования
,

EndPre - конец преформатирования
,

BeginHref - начало гиперссылки,

EndHref - конец гиперссылки,

EndBody - конец файла HTML,

BegCcat - начало краткого алфавитного каталога

EndCcat - конец краткого алфавитного каталога

Titlcat - заголовок каталога

CcatRow - строка краткого алфавитного каталога

CcatCol - столбец краткого алфавитного каталога

CcatColN - пустой столбец

BegDcat - начало расширенного алфавитного каталога

BegDcatTbl - начало подтаблицы

EndDcat - конец расширенного алфавитного каталога

DcatRow - строка расширенного алфавитного каталога

CcatCap - заголовок строк каталога

CcatRowDpz - строка таблицы диапазонного каталога
^ 6.2. Генерация разделов файла HTML
В начале описания команды формируются дата из таблицы Data

основной БД. Далее в раздел "Команда:" заносятся имя команды,

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

берется из таблиц Name, Strpar и Text основной БД.
Формирование выходного структурированного текста HTML (в

частности описание параметров из структурной таблицы Param)

осуществляется посредством создания таблиц на языке HTML (см.

[4,5]). При этом первый столбец строки таблицы определяет сдвиг

начала таблицы по отношению к предыдущему тексту.
Для параметра этот сдвиг вычисляется программно в

зависимости от размеров параметров текущего и предыдущего

уровней. Величина поля, отводимого под имя параметра (второй

столбец строки таблицы) определяется максимальным размером

параметра текущего уровня, если он не превышает максимальный

размер имени параметра, задаваемый посредством меню, а иначе -

заданным в меню значением. Для длинных имен параметров текст

описания параметра начинается со следующей строки, но с той же

позиции, что и у других параметров этого уровня. Задавая в меню

соответствующее значение максимального размера имени параметра

можно добиться оптимального расположения текста выходного файла

HTML на экране. Таким образом таблица описания параметров

состоит из четырех столбцов, содержащих следующую информацию:
1-ый столбец - число пробелов до начала параметра,

2-ой столбец - имя параметра,

3-ий столбец - разделитель ("-"),

4-ый столбец - текст параметра.
Таблицы на языке HTML, описывающие другие виды

структурированного текста, строятся по такому же принципу, но

могут быть несколько модифицированными (например, отсутствует

столбец с именем параметра в случае структурированного текста,

начинающегося с символа "-", отсутствует столбец с разделителем

в случае текста с номерами, отсутствуют столбцы с именем

параметра и разделителем в случае структурированного блока).
Отдельные конструкции структурированного текста на HTML

снабжаются определенным стилем печати для удобного визуального

восприятия их на экране. Имена параметров для четкого отражения

сдвижек текстовых позиций каждого уровня выводятся моноширинным

шрифтом, отводящим под каждый символ одинаковое количество

пикселей, а описания параметров - пропорциональным шрифтом.

Моноширинный шрифт используется также при выводе

структурированного блока, т.к. чаще всего такие блоки описывают

схемы и таблицы, где очень важно позиционное расположение

символов. Стили для вывода информации задаются на HTML

посредством каскадных таблиц стилей (см. [5]), описанных в файле

vcm_dsc.css . Имя класса с определенным стилем вывода информации

задается в шаблоне. Такой подход обеспечивает оперативное

изменение внешнего вида всех документов HTML путем замены только

описания нужного класса в каскадной таблице стилей.
При генерации раздела описания команды из таблицы Textfull

анализируются коды фрагментов исходного текста. Анализ значения

кода определяет вид обработки текущего фрагмента :

0 - генерация начала абзаца,

1 - запись фрагмента текущего абзаца,

2 - генерация гиперссылки на имя связанной команды,

иначе - генерация структурированного текста.
При генерации гиперссылки адрес описания связанной команды

определяется из БД каталога и образует конструкцию вида:

../ <имя каталога ДОС>/<краткое имя>.htm
Вызов гиперссылки обеспечивает показ описания вызванной

команды в новом окне экрана. Подобным же образом генерятся

ссылки из таблицы Common основной БД, содержащей полный список

связанных команд. Если таблица пустая, то раздел "Смотри

также:" не создается.
Отличительной особенностью выходного структурированного

текста в параметрах и описании является то, что имена параметров

в разделе параметры выделяются жирным шрифтом, а в разделе

описания команды выделения не происходит (класс стиля вывода

определяется в каскадной таблице стилей).
Входные строки раздела описание команды, начинающиеся с

трех символов #// , являются комментариями и в выходной файл не

записываются.
Примеры использования команды берутся из таблицы Sample

основной БД и заносятся в выходной файл HTML с использованием

преформатирования, что обеспечивает сохранение формата текста из

входного файла. Для соблюдения позиционирования примеры выдаются

моноширинным шрифтом (класс стиля вывода определяется в

каскадной таблице стилей). Если таблица Sample не заполнена

раздел не создается.
^ 6.3 .Функции для создания файла HTML
Создание файла HTML осуществляется функциями ft_str_html и

form_par_htm, находящимися в файле cvdoc_2.viz :
* ##c 21.07.99 ft_str_html

* ft_str_html

* ##s

* Создание файла HTML из структур основной БД

* ##p Параметры:

* ##f

* Функция осуществляет выгрузку описаний всех команд из

* основной БД, содержащейся в файле, заданном в глобальной

* переменной @TF_file_str и создает файлы HTML. Имена и

* каталоги для размещения выходных файлов берутся из БД

* каталога команд, задаваемой в глобальной переменной @TF_file

* _com). Путь доступа к выходным файлам задается в глобальной

* переменной @TF_out_path .

* ##x Например:

* ##e

* ##a form_par_htm
* ##c 21.07.99 form_par_htm

* form_par_htm flag wfile s_pos mlenp l_ofs sh_ofs lengh_pmax

* ##s

* Генерация структурированного текста файла HTML

* ##p Параметры:

* flag - флаг: 0 - параметры,

* 1 - структурированный текст,

* wfile - номер файла записи выходного текста,

* s_pos - размер позиции в пикселях,

* mlenp - максимальный размер группы параметров на

* странице,

* l_ofs - смещение по уровню текста описания параметра,

* sh_ofs - смещение параметров предыдущего уровня,

* lengh_pmax - максимальный размер параметров предыдущего

* уровня.

* ##f

* Функция осуществляет чтение очередного уровня

* структурированного текста из основной БД и занесение

* сгенерированной информации в выходной файл HTML. Переход на

* обработку следующего уровня структурированного текста

* осуществляется путем рекурсивного вызова функции.

* ##x Например:

* ##e
Приложение 1. Описание команды в кодировке ASCII
##c 28.08.94 bvar_conv viz

bvar_conv nv d_bv d_ofs d_step s_bv s_ofs s_step type fmt

##s

Преобразование элементов двоичного вектора

##p Параметры:

nv - количество элементов вектора,

d_bv - имя двоичной переменной с вектором результатом,

d_ofs - смещение первого элемента вектора результата,

d_step - шаг между соседними элементами вектора результата,

d_bv - имя двоичной переменной с исходным вектором,

d_ofs - смещение первого элемента исходного вектора,

d_step - шаг между соседними элементами исходного вектора,

type - одно-символьный преобразования:

c - преобразование типа элементов в смысле языка Си,

s - форматное преобразование элементов вектора из двоичного

представления в текстовое (аналог функции scanf),

p - форматное преобразование элементов вектора из текстового

представления в двоичное (аналог функции printf),

fmt - формат преобразования одного элемента вектора (может

содержать пробелы и кавычки), в случае

преобразования типа элементов в смысле языка Си,

формат является трехзначным восьмеричным числом,

младшая цифра которого определяет тип элементов

исходного вектора, вторая цифра - тип элементов

результирующего вектора, третья (старшая) цифра

определяет необходимость округления результата

преобразования до ближайшего целого:

=0 - округление не требуется,

=1 - округление до ближайшего целого.

Первая и вторая цифры кодируют тип элементов

вектора:

0 - целое со знаком длиной 2 байта (от -32767 до 32767),

1 - вещественное длиной 4 байта (от -1.e38 до 1.e38),

2 - целое со знаком длиной 4 байта (от -2**31 до -2**31-1),

3 - вещественное длиной 8 байт (от -1.e308 до 1.e308),

4 - целое положительное длиной 1 байт (от 0 до 255).

##f

Так же как и во многих других командах, непосредственно

(без пробелов) за параметрами задающими смещение и шаг может

быть задан один символ (d, D, g, G), определяющий единицу

измерения соответствующего параметра (см. bvar_copy):

d - единица измерения 2 байта,

D,g - единица измерения 4 байта,

G - единица измерения 8 байт.

##x Например:

bvar_conv nv d_bv d_ofs d_step s_bv s_ofs s_step type fmt

bvar_conv 10 dbv 0 1G sbv 0 1d c 030

bvar_conv 10 dbv 0 10 sbv 0 1d p val= 1d

bvar_conv 10 dbv 0 1d sbv 0 10 s 1d

##e

##a

Приложение 2. Описание команды в кодировке HTML
  1   2

Похожие:

Базовой технологии создания систем обработки и отображения сложно организованной информации iconТехнологии создания систем обработки и отображения сложно организованной информации
В нивц мгу разрабатывается инструментальный комплекс "виз" для создания систем обработки и отображения сложно
Базовой технологии создания систем обработки и отображения сложно организованной информации iconТехнологии создания систем обработки и отображения сложно организованной информации
Формат rtf [7] является стандартным форматом для обменатекстовыми документами и поддерживается системой windows, вчастности с rtf-файлами...
Базовой технологии создания систем обработки и отображения сложно организованной информации iconИнформационные технологии в правовой деятельности
ПК. Данные технологии, как правило, используют для обработки криминальной информации, ее управления, автоматизации всех офисных работ,...
Базовой технологии создания систем обработки и отображения сложно организованной информации iconЮ. А. Тяпченко анализ и синтез подсистемы аварийно-предупредительной...
Гнализации систем отображения информации пилотируемых космических аппаратов / Тяпченко Ю. А.; Закрытое акционерное общество «Научно-технический...
Базовой технологии создания систем обработки и отображения сложно организованной информации iconМногофункциональный вычислительный комплекс для обработки радиолокационных сигналов
Нальный вычислительный комплекс (ВК) предназначен для управления блоками бортовой радиолокационной станции (брлс), аналого-цифрового...
Базовой технологии создания систем обработки и отображения сложно организованной информации icon3 Организация технологического процесса обработки информации
Для повышения эффективности технологии обработки данных необходимо провести ее стандартизацию
Базовой технологии создания систем обработки и отображения сложно организованной информации iconОбработка и передача измерительной информации
Организация процесса обработки телеметрической информации с использованием технологии семантических веб служб
Базовой технологии создания систем обработки и отображения сложно организованной информации iconРабочая программа дисциплины (практики) «Мультимедийные технологии»...
«Мультимедийные технологии» является авторской, предназначена для реализации Государственных требований к уровню подготовки выпускников...
Базовой технологии создания систем обработки и отображения сложно организованной информации iconПрограмма обучения: «Использование новых информационных технологий...
В курсе рассматриваются вопросы работы с текстовыми документами, обработки данных в электронных таблицах, создания презентаций, графического...
Базовой технологии создания систем обработки и отображения сложно организованной информации iconПрограмма обучения: «Использование новых информационных технологий...
В курсе рассматриваются вопросы работы с текстовыми документами, обработки данных в электронных таблицах, создания презентаций, графического...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
www.litcey.ru
Главная страница