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




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

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

ОРГАНИЗОВАННОЙ ИНФОРМАЦИИ

( Часть III )
СОДЕРЖАНИЕ

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

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

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

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

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

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

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

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

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

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

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

исследований, грант 01-07-90173 .
Технология создания документации, основывающаяся на

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

средством языка ВИЗ, описывается в двух частях. Первая часть

работы была посвящена созданию Основной БД для хранения описаний

команд языка ВИЗ и генерации выходных HTML-файлов (см. [7]).

Вторая часть работы посвящена созданию файлов в формате RTF из

Основной БД и документации по CPP-процедурам (см. [8]). В

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

Текстовой БД для хранения структурированной текстовой

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

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

^ 10. Текстовая БД для описания документов
На базе документации языка ВИЗ создается текстовая БД,

которая в конкретной реализации средствами языка ВИЗ

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

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

частично или полностью, если документ или его раздел уже

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

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

замене отдельного раздела местоположение раздела в БД

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

{

itype=2 comtab=1 isegm=1 inum=6 inames=1

sspace="0 10 0 STR_COM"| nvlist:

D_Namebrif D_Namefull D_Vers D_Textfull D_Indexdoc D_Nameout;

D_Namebrif={ itype=2 syntab=1;}

D_Namefull={ itype=2 syntab=1;}

D_Vers= { itype=2 syntab=1;}

D_Textfull={ itype=22 syntab=1 isegm=1;}

D_Indexdoc={ itype=2 syntab=1;}

D_Nameout= { itype=22 syntab=1;}

}

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

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

виде:
* Структура A

* Уровень 0:

*(синхро-таблицы) [0] [1] [2] [3] [4] [5]

* имена таблиц: D_Namebrif D_Vers D_Indexdoc

* | D_Namefull | D_Textfull | D_Nameout

* | | | | | |

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

*(таблицы- [0]...[k] [0]...[k] [0]...[k]

* заголовки отдельных документов)

*

Синхро-таблицы 0-го уровня содержат следующую информацию:
D_Namebrif - таблица для кратких имен документов,

D_Namefull - таблица для заголовков документа,

D_Vers - таблица для дат создания документов,

D_Textfull - таблица для текстов описаний документов,

D_Indexdoc - таблица с индексами документов,

D_Nameout - таблица для хранения информации об имени

выходного файла для каждого раздела

документа.
Описание очередного документа "подвешивается" к

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

{

itype=2 inames=1 tfsize=4000|

nvlist: Namebrif Namefull Vers Textfull;

Textfull=

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

Str={ itype=1 syntab=1;}

Typ={ itype=1 syntab=1;}

}

}

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

*(таблицы-заголовки документов) |

* |

* |

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

*(таблицы-заголовки разделов 1-го уровня) |

* |

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

* имена таблиц: Namebrif Namefull Vers Textfull

* |

* Уровень 4: Str Typ

*(синхро-таблицы)

*
Таблицы 3-го уровня содержат следующую информацию:
Namebrif - номер раздела документа,

Namefull - заголовок раздела документа,

Vers - дата создания раздела документа,

Textfull - таблица-заголовок для раздела документа,

размещаемого в синхро-таблицах Str и Typ

(описание таблиц см. в [7], п.4.1),

[4] - таблица-заголовок, если есть подразделы

документа следующего уровня; содержит

признак сегментации и порождается командой:

trf_t_make A 42 ,

что обеспечивает расположение структуры с

описанием подраздела в отдельном сегменте

памяти.
Таким образом, подразделы документа образуют динамическую

структуру вида:

* Уровень 3: ... [4]

*(таблица-заголовок) |

* |

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

*(таблицы-заголовки подразделов 2-го уровня) |

* |

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

* имена таблиц: Namebrif Namefull Vers Textfull |

* | |

* Str Typ |

* |

* Уровень 6: [0] [1] ... [k3] ... [n3]

*(таблицы-заголовки подразделов 3-го уровня) |

* |

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

* имена таблиц: Namebrif Namefull Vers Textfull |

* | |

* Str Typ |

* ...
^ 10.2. Функции для работы с текстовой БД
Создание текстовой БД осуществляется функциями drv_ftex,

trf_str _tex.viz, lev_numer находящимися в файле cvtex_1.viz :
* ##c 19.11.99 drv_ftex

* drv_ftex

* ##s

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

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

* ##f

* Функция осуществляет чтение строки входного файла,

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

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

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

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

*

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

* ##e

*

* ##c 19.11.99 trf_str_tex

* trf_str_tex file_in

* ##s

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

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

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

* ##f

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

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

* функции поиска в строке внешних ссылок ( str_find ). Для

* поиска внешних ссылок предварительно создается структура,

* элементы, которой имеют имена идентификаторов ссылок - "п."

* и "пп.", а значения - строки пробелов по числу символов в

* имени этого элемента.

*

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

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

* протоколе prt_str.txt.

*

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

* ##e

* ##a struc_param str_find

*

* ##c 19.11.99 lev_numer

* lev_numer

* ##s

* Представление номера в виде лексем смещений начала и

* конца уровней номера

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

* num - номер раздела (типа n1.n2.n3. ...)

* ##f

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

* заданном номере раздела:

* <число уровней в номере> <начало номера 1-го ур.>

* <конец номера 1-го ур.> и т.д. для всех уровней номера.

*

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

* ##e

^ 11. Общие принципы генерации выходных файлов из

текстовой БД
При генерации выходных HTML-файлов возникает необходимость

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

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

ошибок из-за большого объема файла при его передаче по каналам

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

файлов в зависимости от обрабатываемого раздела документа

(учитываются только разделы первого уровня).
В текстовую БД пользователем может быть предварительно

занесена информация из файла запроса, определяемого глобальной

переменной @TF _file_out (стандартное имя list_out.txt). По

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

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

документам текстовой БД. Эта таблица имеет следующую структуру:
* Уровень 0:

*(синхро-таблица) ... [4]

* имя таблицы: D_Nameout

* |

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

*(таблицы-заголовки отдельных документов) |

* |

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

* элементы таблицы, соответствующие числу разделов в документе:

* значение элемента - <имя выходного файла>

*
При генерации выходных RTF_файлов значения таблицы выходных

имен D_Nameout не учитываются и при необходимости разбиения

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

используется в следующих случаях:
1) Для занесения в текстовую БД списка соответствия разделов

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

#out); по запросу в текстовой БД формируется таблица

D_Nameout; в задании параметров должны присутствовать все

номера разделов в возрастающем порядке, т.к. нарушение этого

правила может повлечь ошибки генерации выходных файлов;

2) Для генерации из БД выходных файлов в формате HTML (запрос

#htm); параметры имеют приоритетное значение и в них могут

быть заданы не все номера разделов, а только подлежащие

выводу;

3) Для генерации из БД выходных файлов в формате RTF (запрос

#rtf); параметры удовлетворяют условиям предыдущего пункта.
^ 11.1. Язык запроса на генерацию выходных файлов
Файл запроса может содержать несколько запросов, каждый из

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

запроса. Начало запроса может содержать краткое имя

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

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

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

следующими командами:
#htm [<краткое имя>] - начало запроса для HTML-файлов,

#rtf [<краткое имя>] - начало запроса для RTF-файлов,

#out - начало запроса для заполнения таблицы

выходных имен,

#e - конец запроса.
Внутри "контейнера" помещается запрос на генерацию простого

или составного файла. Простой файл состоит из разделов только

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

всеми их подразделами, имеющими фиксированные номера и названия.

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

текстовую БД, которые могут содержать или не содержать исходные

подразделы, иметь другую нумерацию и названия и т.д.
Запросы на генерацию файлов подразделяются на простые и

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

запроса не обязательно, если они не заданы, то в выходной файл

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

HTML-файлов определяются по таблице выходных имен D_Nameout.
Общий вид строки запроса на генерацию простого файла

состоит из набора лексем, обозначенных номерами:
[<1>] <2> [<3 4 5> <6 7 8> <9 10 11> ... ] ,
где:

<1> - флаги генерации документа, определяющиеся байтами

(в запросе #out отсутствуют):

0-ой байт - флаг генерации заголовка раздела:

0 - выводить заголовок (под)раздела из БД,

1 - заменить заголовок (под)раздела на заданный,

2 - не выдавать заголовок раздела,

1-ый байт - флаг генерации номера раздела:

0 - сохранить номер (под)раздела из БД,

1 - заменить номер (под)раздела на заданный,

2-ой байт - флаг генерации подраздела:

0 - выводить раздел с подразделами из БД,

1 - выводить только сам раздел (без подразделов),

<2> - выходное краткое имя документа,

<3 4 5> <6 7 8> <9 10 11> ... -

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

триадами:

<первый параметр триады> - начальный номер раздела документа,

входящего в данный выходной файл,

<второй параметр триады> - конечный номер раздела документа,

входящего в данный выходной файл

(при задании одного раздела первый

и второй параметры совпадают),

<третий параметр триады> - конечный символ, добавляемый к

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

для идентификации данного выходного

файла, являющегося частью исходного

документа (задается в запросе #out,

простых запросах #htm и #rtf, и в

командной строке #bq составного

запроса).
Простой запрос состоит из одной или нескольких строк

запроса с флагами "000", находящихся в одном "контейнере". Общая

схема простого запроса (в виде строк комментариев) приводится

ниже:
* #rtf/#htm [<новое имя документа>]

* 000 <краткое имя документа 1> [<параметры генерации>]

* . . . . . .

* 000 <краткое имя документа K> [<параметры генерации>]

* #e
Здесь параметры имеют следующий смысл:
<новое имя документа> - задается при запросе на генерацию

одного документа для замены имени

выходного файла,

<краткое имя документа> - имя документа в текстовой БД, из

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

<параметры генерации> - параметры, определенные в описании

строки запроса.
Составной запрос имеет сложную структуру. Начало составного

запроса определяется командной строкой #bq, а конец запроса -

командной строкой #eq , внутренняя структура составного запроса

идентична внутренней структуре текстовых документов (см.

[7], п.2.3). Общая схема составного запроса (в виде строк

комментариев) приводится ниже:

* #rtf/#htm <выходное имя документа>

* #bq [<параметры генерации>]

* ##t <название документа>

* [##t <продолжение названия документа>]

* #:Begin

* ##n <номер (под)раздела 1> [<название (под)раздела 1>]

* <флаг> <краткое имя документа 1.1> <параметры генерации>

* . . . . . .

* <флаг> <краткое имя документа 1.L> <параметры генерации>

* ##e

* ##n <номер (под)раздела 2> [<название (под)раздела 2>]

* <флаг> <краткое имя документа 2.1> <параметры генерации>

* ...

* <флаг> <краткое имя документа 2.L> <параметры генерации>

* ##e

* . . . . . .

* ##n <номер (под)раздела K> [<название (под)раздела K>]

* <флаг> <краткое имя документа K.L> <параметры генерации>

* . . . . . .

* <флаг> <краткое имя документа K.L> <параметры генерации>

* ##e

* #eq

* #e
Здесь параметры имеют следующий смысл:
<параметры генерации> - параметры, определенные в описании

строки запроса,

<выходное имя документа> - определяет имя выходного файла,

<номер (под)раздела> - номер раздела/подраздела в выходном

документе; может быть продолжением

номеров, сгенеренных предыдущей

строкой запроса (например, 2.3, если

в предыдущей строке неявно генерятся

подразделы с номерами 2.1 и 2.2);

значением номера раздела может быть

"N",что соответствует заданию номера

следующего раздела при генерации,

<название (под)раздела> - новый заголовок раздела/подраздела,

заносимый в выходной документ при

установке соответствующего флага,

<флаг> - флаги генерации, определенные в

описании строки запроса,

<краткое имя документа> - имя документа в текстовой БД, из

которого берется текстовая

информация,

<параметры генерации> - параметры, определенные в описании

строки запроса; в качестве конечного

номера раздела может быть задано

"-1", что означает выборку всех

разделов документа до конца; для

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

номера, у которых при замене только

начальная часть номера меняется на

заданный <номер (под)раздела>.
Запрос на формирование таблицы выходных имен D_Nameout в

текстовой БД имеет вид (в виде строк комментариев):
* #out

* <краткое имя документа 1> <параметры генерации>

* . . . . . .

* <краткое имя документа K> <параметры генерации>

* #e
Здесь параметры имеют следующий смысл:
<краткое имя документа> - имя документа в текстовой БД, из

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

<параметры генерации> - параметры, определенные в описании

строки запроса.
Например:
* запрос на заполнение таблицы выходных имен D_Nameout

* выходные имена: docum11 (разделы 1-6), docum12 (разделы 7-10),

* docum21 (разделы 1-3), docum22 (раздел 4)

* #out

* docum1 1 6 1 7 10 2

* docum2 1 3 1 4 4 2

* #e

*

* простой запрос на генерацию трех документов в формате HTML

* с именами:

* docum1a (разделы 1-6), docum2b (разделы 7-10), docum2

* #htm

* 000 docum1 1 6 a 7 10 b

* 000 docum2

* #e

*

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

* текстовой БД в формате RTF с выходным именем fordoc

* #rtf fordoc

* 000 format

* #e

*

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

* с названием "Новый документ (составной)"

* #rtf newdoc

* #bq

* ##t Новый документ

* ##t (составной)

* #:Begin

* первый раздел нового документа имеет новый заголовок и

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

* нумерации, заголовка и первых двух разделов документа docum2

* без вывода их заголовков (подразделы исходных документов в

* выходной текст не выводятся)

* ##n 1. Первая часть

* 111 docum1 1 1

* 211 docum2 1 2

* ##e

* второй раздел нового документа соответствует четвертому

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

* нумерация раздела и подразделов, а также заголовок раздела

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

* ##n 2. Вторая часть

* 110 docum2 4 4

* ##e

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

* предыдущих построены предыдущим запросом), нумерация

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

* ##n 2.3.

* 011 docum3 5.1.1 5.1.1

* ##e

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

* третьему разделу исходного документа docum3

* ##n 3.

* 000 docum3 3 3

* ##e

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

* разделам исходного документа docum1, начиная с шестого, при

* этом в выходном документе изменяется нумерация разделов и

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

* ##n 4.

* 010 docum1 6 -1

* ##e

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

* раздел документа docum3 без подразделов, при этом нумерация

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

* ##n N. Заключительная часть

* 111 docum3 5 5

* ##e

* #eq

* #e
^ 11.2. Описание структуры запроса для генерации документа
Головная часть структуры запроса строится посредством команды:

call |trf_struct_make S

{

itype=2 comtab=1 inum=4 inames=1 |

nvlist: Q_Namebrif Q_Namefull Q_Vers Q_Generquery Q_Generout;

Q_Generquery ={ itype=2;}

Q_Generout ={ itype=2;}

}

#End
Таким образом создается динамическая структура вида:
* Структура S

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

* имя таблицы: Q_Namebrif Q_Vers Q_Generout

* Q_Namefull Q_Generquery |

* | |

*
Таблицы структуры содержат следующую информацию:
Q_Namebrif - краткое имя генерируемого документа,

Q_Namefull - заголовок генерируемого документа,

Q_Vers - дата создания документа (определяется

по дате текущего дня),

Q_Generquery - таблица для описания запроса генерации

документа,

Q_Generout - таблица имен выходных разделов

генерируемого документа.
Описание очередного запроса на генерацию (под)раздела

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

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

команды:
call |trf_struct_make S

{

itype=2 inames=1 tfsize=4000|

nvlist: Namebrif Namefull Query;

Query=

{

itype=2 comtab=1 ahsize=1 siflag=1 inames=1|

nvlist: Nref Aref Fgen;

Nref={itype=2 syntab=1;}

Aref={itype=2 syntab=1;}

Fgen={itype=2 syntab=1;}

}

}

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

* имя таблицы: Q_Generquery

* |

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

*(таблицы-заголовки | | |

* для разделов 1-го уровня) |

* |

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

* имена таблиц: Nref Aref Fgen |

* |

* Уровень 3: [0] ... [k2] ... [n2]

*(таблицы-заголовки | | |

* для разделов 2-го уровня) |

* |

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

* имена таблиц: Nref Aref Fgen |

* |
Здесь имена таблиц соответствуют (под)разделам запроса и

определяют следующие элементы структуры:
Nref - синхро-таблица кратких имен документов из текстовой

БД - источников генерации,

Aref - синхро-таблица номеров (под)разделов генерации,

Fgen - синхро-таблица флагов генерации.
Каждый элемент синхро-таблиц относится к одному этапу

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

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

взять и флаги, определяющие процесс генерации этого фрагмента.

Таким образом раздел нового документа может быть "собран" из

кусочков разных документов, которые хранятся в текстовой БД.
Таблица Q_Generout определяется для всех разделов выходного

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

генерируемых файлов. Она представляет из себя структуру вида:
* Уровень 0: ... [4] ...

* имя таблицы: Q_Generout

* |

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

*(таблицы-заголовки |

* для разделов запроса) |

* |

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

* значение элемента - <имя выходного файла>

*
Если в текстовой БД была предварительно заполнена таблица D

_Nameout, то при генерации HTML-файла она копируется в таблицу Q

_Generout структуры запроса. Если в строке запроса есть

параметры генерации, то они имеют приоритет и определяют таблицу

выходных имен Q_Generout . Значение элемента этой таблицы,

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

документа и добавляемого конечного символа (если он задан),

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

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

таблица Q_Generout для всех разделов документа с одним и тем же

выходным именем, если не была скопирована таблица D_Nameout.
Значения элементов таблицы Q_Generout также используются

при генерации внешних ссылок на документы текстовой БД. При

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

БД, по этой таблице определяется фактическое имя выходного

документа, где расположен заданный в ссылке раздел.
^ 11.3. Функции для работы со структурой запроса
Создание структуры запроса и работа с ней осуществляется

функциями trf_query_gen, trf_nameout и trf_query находящимися в

файле cvtex_1.viz. Кроме этого файл содержит вспомогательные

программы for_path и for_num_razd :
* ##c 22.03.2000 trf_query_gen

* trf_query_gen prfl rfile genname

* ##s

* Формирование запроса генерации документа из текстовой БД

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

* prfl - признак вида генерации файлов:

* 0 - запрос для файлов HTML,

* 1 - запрос для файлов RTF,

* rfile - номер входного файла с запросом на генерацию,

* genname - краткое имя сгенерированного документа.

* ##f

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

* запроса, определяемого глобальной переменной @TF_file_out

* (стандартное имя list_out.txt), и формирует структуру

* запроса на основе поступившей информации.

*

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

* ##e

* ##a trf_nameout

*

* ##c 22.03.2000 trf_nameout

* trf_nameout ns docname pargen pp

* ##s

* Формирование таблицы выходных имен для разделов документа

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

* ns - имя структуры, в которой формируется таблица,

* docname - имя текстового документа, находящегося в БД,

* pargen - параметры генерации выходных имен разделов

* документа,

* pp - признак вида строки параметров:

* 0 - строка параметров состоит из триад,

* 1 - строка параметров состоит из пар.

* ##f

* Функция формирует таблицу выходных имен по заданному имени

* и параметрам генерации. Таблица формируется либо в текстовой

* БД, либо в структуре запроса, что определяется значением

* параметра с именем структуры.

*

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

* ##e

*

* ##c 03.04.2000 trf_query

* trf_query qnum

* ##s

* Обработка запроса текущего уровня для генерации документа

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

* qnum - общее количество разделов запроса текущего уровня.

* ##f

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

* запрос на обработку соответствующему процессору,

* определяемому по значению глобальной переменной @FGN:

* 0 - генерация раздела файла в формате HTML,

* 1 - генерация оглавления HTML-файла,

* 2 - генерация раздела файла в формате RTF.

*

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

* ##e

* ##a for_text_htm for_cont_hym for_tex_rtf lev_numer

*

* ##c 03.04.2000 for_path

* for_path docnum docraz

* ##s

* Вычисление пути доступа к разделу документа в БД

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

* docnum - номер исходного документа генерации в БД,

* docraz - номер раздела генерации.

* ##f

* Функция формирует путь доступа к разделу документа из

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

* раздела в нем.

*

* Результат помещается в переменную RET_STR.

*

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

* ##e

*

* ##c 03.04.2000 for_num_razd

* for_num_razd numrazd korr

* ##s

* Корректировка номера раздела

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

* numrazd - составной номер раздела документа (n1.n2.n3...),

* korr - поправка к последнему уровню номера.

* ##f

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

* самого нижнего уровня и добавляет к нему значение поправки.

*

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

* в виде трех лексем помещаются в переменную RET_STR:

* - значение cкорректированного последнего уровня номера,

* - значение скорректированного номера (с точкой на конце),

* - значение скорректированного номера (без точки на конце).

*

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

* ##e

^ 12. Меню для подготовки текстовой документации языка ВИЗ
Подготовка документации осуществляется посредствомобращения к меню, которое содержится в файле v_texstr.viz ивызывается на экран при запуске стартового файла _st_tex_bat:
* Подготовка документации по языку ВИЗ

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

* ________

* | Помощь |

* |________|

*

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

*

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

* Файл со списком имен для исключения : &@TF_file_del.

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

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

* : &@TF_out_path_rtf.

* Файл текстовой базы данных : &@TF_file_str.

* Файл для записи протокола работы : &@TF_file_prt.

* Файл для генерации выходных документов : &@TF_file_out.

* Файлы для создания оглавления RTF-файлов: &@TF_rcnt_rtf.

*

* __________________________________

* I. |Добавить в текстовую БД |

* |__________________________________|

* __________________________________

* |Исключить из текстовой БД |

* |__________________________________|

* __________________________________

* II. |Сформировать таблицу выходных имен|

* | по разделам документа |

* |__________________________________|

* _____________________________

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

* |_____________________________|

* _____________________________

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

* |_____________________________|

* _____________________________

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

* |_____________________________|

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

при подготовке документации:
@TF_inp_path - путь доступа к входным файлам (d:\nic\v_dcom\),

@TF_file_int - список имен входных файлов (list_inp.txt),

@TF_file_del - список имен для исключения (list_del.txt),

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

@TF_out_path_htm -

путь доступа к выходным HTML-файлам

(d:\nic\v_dcom\d_htm),

@TF_out_path_rtf -

путь доступа к выходным RTF-файлам

(d:\nic\v_dcom\d_rtf),

@TF_file_out - файл запросов на генерацию выходных документов

(list_out.txt).
Значения, указанные в круглых скобках, устанавливаются по

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

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

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

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

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

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

обработки необходимо закомментировать только строку начала этого

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

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

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

разделах, посвященных генерации выходных файлов.
^ 12.1. Меню и функции создания файлов в формате HTML
Обращение к созданию файла в формате HTML осуществляется

через подменю, имеющее следующий вид:
* Параметры для создания HTML файлов

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

* ___

* Размер заголовка документа : | 3 |

* |___|

* ___

* Размер заголовка раздела : | 5 |

* |___|

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

* ____

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

* |____|

* ___

* Сдвиг заголовка 1-го уровня : | 5 |

* |___|

* ___

* Приращение сдвига заголовка : | 2 |

* |___|

*

* Создание описаний/оглавлений документов

* (0 - нет/ 1 - да):

* ___

* Описание документа : | 1 |

* |___|

* ___

* Оглавление документа : | 0 |

* |___|

* ___

* Общее оглавление БД : | 0 |

* |___|

* ___________________________________

* | Создать описания и/или оглавления |

* |___________________________________|

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

запроса, построенной из запроса на генерацию HTML-файлов,

поступающего из выходного файла (по умолчанию list_out.txt), в

котором содержатся параметры генерации (см. п.11.2.). В

текстовой БД осуществляется поиск элемента с заданным именем.

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

документа из БД с датой ранее созданного документа, если он

существует. Новый документ генерится, если его не существовало

ранее, или если его дата не совпадает с датой из БД. При

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

общим перечнем документов, содержащихся в текстовой БД и

глобальным массивом для библиотеки скриптов создаются всегда.
Файл в формате HTML строится по отдельным шаблонам,

соответствующим каждому разделу блока. Перечень шаблонов и

основные принципы генерации HTML-файлов приведены в

[7], пп.6.1,6.2 .
Создание HTML-файла осуществляется функциями drv_ftex_htm и

for_text_htm, находящимися в файле cvtex_2.viz :
* ##c 27.03.2000 drv_ftex_htm

* drv_ftex_htm

* ##s

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

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

* ##f

* Функция управляет процессом создания HTML-файлов. На

* первом этапе строится структура запроса на генерацию HTML-

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

* значением глобальной переменной @TF_file_out). Начало

* запроса во входном файле определяется по командной строке

* #htm. Построение простого или сложного запроса производится

* функцией trf_query_gen.

*

* На втором этапе устанавливается глобальный признак

* генерации @FGN=0 и обращение к функции ft_strtex_html для

* генерации HTML-файлов из текстовой БД.

*

* При задании в меню признаков генерации общего перечня

* документов текстовой БД, происходит вызов функции

* for_allcont_htm, формирующей общий перечень документов.

*

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

* ##e

* ##a trf_query_gen ft_strtex_html for_allcont_htm

*

* ##c 27.03.2000 ft_strtex_html

* ft_strtex_html

* ##s

* Создание файла в формате HTML

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

* ##f

* Функция осуществляет открытие выходных HTML-файлов. Имена

* этих файлов определяются по таблице выходных имен Q_Generout

* из структуры запроса. На основе этой информации строится

* строка лексем, в общем случае состоящая из триад:

* <имя выходного файла>

* <номер начального раздела документа, входящего в файл>

* <номер конечного раздела документа, входящего в файл>.

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

* расширением .htm. В каждый выходной файл функция заносит

* определенную начальную и конечную информацию.

*

* Кроме этого функция обеспечивает построение HTML-файла

* содержания сгенеренного документа при задании

* соответствующей опции в управляющем меню. Устанавливается

* признак генерации содержания @FGN=1.

*

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

* обходчик структуры запроса, вызываемый через функцию

* trf_query.

*

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

* ##e

* ##a trf_query

*

* ##c 27.03.2000 for_text_htm

* for_text_htm flt fln flp docnum docraz lvnum infr

* ##s

* Генерация текста раздела документа в формате HTML

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

* flt - флаг генерации заголовка раздела:

* 0 - выводить заголовок (под)раздела из БД,

* 1 - заменить заголовок (под)раздела на заданный,

* 2 - не выдавать заголовок раздела,

* fln - флаг генерации номера раздела:

* 0 - сохранить номер (под)раздела из БД,

* 1 - заменить номер (под)раздела на заданный,

* flp - флаг генерации подраздела:

* 0 - выводить раздел с подразделами из БД,

* 1 - выводить только сам раздел (без подразделов),

* 2 - выводить все (под)разделы текущего уровня,

* docnum - номер исходного документа генерации в БД,

* docraz - номер раздела генерации,

* lvnum - общее количество разделов данного уровня,

* infr - признак предыдущего раздела:

* 0 - в разделе нет информации,

* 1 - в разделе есть информация.

* ##f

* Функция анализирует флаги генерации flt, fln, flp и в

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

* всех разделов документа текущего уровня, подразделов

* текущего раздела, выдачу или игнорирование заголовка

* раздела, сохранение или замену номера раздела. Создание

* структуры запроса и задание флагов генерации обеспечивают

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

* текстовой БД или "собирать" документ из частей разных

* документов, находящихся в текстовой БД.

*

* При необходимости генерации подразделов текущего раздела

* происходит рекурсивное обращение функции к самой себе с

* флагами flp=2 и flt=0. Структурированный текст

* обрабатывается посредством функции form_par_htm. Для работы

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

* вспомогательные функции.

*

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

* ##e

* ##a form_par_htm lev_numer exch_sym_htm for_num_razd
^ 12.1.1. Описание аппарата генерации оглавления документов
Хранение документов в текстовой БД предполагает создание

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

документа из текстовой БД, так и общего перечня документов,

хранящихся в этой БД. При создании оглавлений генерятся адреса

внешних ссылок, по которым может быть вызван соответствующий

  1   2

Похожие:

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


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