Mercurial > hg > tema
changeset 31:3e77076621a8
Remove obsolete docs and sample.
author | Mikhail Kryshen <mikhail@kryshen.net> |
---|---|
date | Sun, 30 Aug 2009 02:51:15 +0400 |
parents | 54539dff18ca |
children | bdd1c8d6b560 |
files | build.xml misc/biotopes/biotope-top.sql misc/biotopes/biotope.sql misc/biotopes/biotope.template misc/biotopes/brief.dtd misc/biotopes/class.sql misc/biotopes/classes.template misc/biotopes/doc/article.txt misc/biotopes/doc/readme.html misc/biotopes/doc/readme.txt misc/biotopes/main.template misc/biotopes/photo.sql misc/biotopes/photo.template misc/biotopes/plant.sql misc/biotopes/plants.template misc/biotopes/tema.properties misc/manual-ru-old/index.html misc/util/header misc/util/header.gpl misc/util/update_headers.pl |
diffstat | 20 files changed, 0 insertions(+), 1131 deletions(-) [+] |
line wrap: on
line diff
--- a/build.xml Fri May 15 03:07:16 2009 +0400 +++ b/build.xml Sun Aug 30 02:51:15 2009 +0400 @@ -118,7 +118,6 @@ <exclude name=".hg/**"/> <exclude name=".hg*"/> <exclude name="${build}/**"/> - <exclude name="misc/**"/> <exclude name="test/**"/> <exclude name="nbproject/**"/> <exclude name="${dist}/${ant.project.name}-*.tar.gz"/>
--- a/misc/biotopes/biotope-top.sql Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -SELECT t1.*, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1) AND -Right(t2.rangcode, 8) = '00000000') AS class0, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 3) = Left(t1.rangcode, 3) AND -Right(t2.rangcode, 6) = '000000') AS class1, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 5) = Left(t1.rangcode, 5) AND -Right(t2.rangcode, 4) = '0000') AS class2, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 7) = Left(t1.rangcode, 7) AND -Right(t2.rangcode, 2) = '00') AS class3 - -FROM biotopelist AS t1 -WHERE Right(t1.rangcode, 2) <> '00' AND rusname
--- a/misc/biotopes/biotope.sql Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -SELECT t1.*, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1) -AND Right(t2.rangcode, 8) = '00000000' -AND Right(t1.rangcode, 8) <> '00000000') AS class0, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 3) = Left(t1.rangcode, 3) -AND Right(t2.rangcode, 6) = '000000' -AND Right(t1.rangcode, 6) <> '000000') AS class1, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 5) = Left(t1.rangcode, 5) -AND Right(t2.rangcode, 4) = '0000' -AND Right(t1.rangcode, 4) <> '0000') AS class2, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 7) = Left(t1.rangcode, 7) -AND Right(t2.rangcode, 2) = '00' -AND Right(t1.rangcode, 2) <> '00') AS class3 - -FROM biotopelist AS t1 -WHERE rusname
--- a/misc/biotopes/biotope.template Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-5"?> -<!DOCTYPE чъьАпщьу_рьтп SYSTEM "brief.dtd"> -<!-- rangcode: <%xml_escape db\rangcode%> --> -<чъьАпщьу_рьтп show="0"> - <ЮьАЦщзь display="0"> - <%optional:<зпЮБп_ЮпАъЮчАБЮпщущьО щчэуЮ="1" file="<%xml_escape image:maps/<%db\rangcode%>.gif maps/<%db\code%>.png png%>"/>%> -<%query:photo_sql [%\<%include\photo.template%>%] <%get\code%>%> - </ЮьАЦщзь> - <щпврпщьу><%xml_escape db\rusname%></щпврпщьу> - <зшпАА><%xml_escape db\class0%></зшпАА> - <ъчтзшпАА1><%xml_escape db\class1%></ъчтзшпАА1> - <ъчтзшпАА2><%xml_escape db\class2%></ъчтзшпАА2> - <ъчтзшпАА3><%xml_escape db\class3%></ъчтзшпАА3> - <зЮпБзпО_ЕпЮпзБуЮьАБьзп rows="3"><%xml_cdata db\descript%></зЮпБзпО_ЕпЮпзБуЮьАБьзп> - <ъЮьэуЮ_чъьАпщьО rows="3"><%xml_cdata db\geobotdescr%></ъЮьэуЮ_чъьАпщьО> - <прБчЮК_чъьАпщьО><%xml_escape db\contributors%></прБчЮК_чъьАпщьО> -</чъьАпщьу_рьтп>
--- a/misc/biotopes/brief.dtd Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -<?xml encoding="ISO-8859-5"?> -<!ELEMENT чъьАпщьу_рьтп (ЮьАЦщзь?, щпврпщьу, зшпАА, ъчтзшпАА1, ъчтзшпАА2, ъчтзшпАА3, зЮпБзпО_ЕпЮпзБуЮьАБьзп, ъЮьэуЮ_чъьАпщьО, прБчЮК_чъьАпщьО)> -<!ELEMENT ЮьАЦщзь (ДчБчсЮпДьО|зпЮБп_ЮпАъЮчАБЮпщущьО)*> -<!ELEMENT ДчБчсЮпДьО EMPTY> -<!ELEMENT зпЮБп_ЮпАъЮчАБЮпщущьО EMPTY> -<!ELEMENT щпврпщьу (#PCDATA)> -<!ELEMENT зшпАА (#PCDATA)> -<!ELEMENT ъчтзшпАА1 (#PCDATA)> -<!ELEMENT ъчтзшпАА2 (#PCDATA)> -<!ELEMENT ъчтзшпАА3 (#PCDATA)> -<!ELEMENT зЮпБзпО_ЕпЮпзБуЮьАБьзп (#PCDATA)> -<!ELEMENT ъЮьэуЮ_чъьАпщьО (#PCDATA)> -<!ELEMENT прБчЮК_чъьАпщьО (#PCDATA)> -<!ATTLIST чъьАпщьу_рьтп show (0|1) "1"> -<!ATTLIST ЮьАЦщзь - display CDATA #FIXED "0"> -<!ATTLIST ДчБчсЮпДьО - num ID #REQUIRED - file CDATA #REQUIRED - big CDATA #REQUIRED - text CDATA #IMPLIED - прБчЮ CDATA #IMPLIED> -<!ATTLIST зпЮБп_ЮпАъЮчАБЮпщущьО - num ID #REQUIRED - file CDATA #REQUIRED> -<!ATTLIST зЮпБзпО_ЕпЮпзБуЮьАБьзп rows CDATA #FIXED "3"> -<!ATTLIST ъЮьэуЮ_чъьАпщьО rows CDATA #FIXED "3">
--- a/misc/biotopes/class.sql Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -SELECT t1.* -FROM biotopelist AS t1 -WHERE rusname AND Right(t1.rangcode, 8) = '00000000' - AND EXISTS - (SELECT NULL FROM biotopelist AS t2 - WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1) - AND Right(t2.rangcode, 8) <> '00000000')
--- a/misc/biotopes/classes.template Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-5"?> -<зшпААьДьзпФьО><%query:class_sql [%\ - <!-- rangcode: <%xml_escape get\rangcode%> --> - <зшпАА id="<%get\NUMBER%>"><%xml_escape db\rusname%></зшпАА>%]%> -</зшпААьДьзпФьО>
--- a/misc/biotopes/doc/article.txt Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,391 +0,0 @@ -* Преобразование базы данных в XML-формат электронной библиотеки. - -Для решения задачи преобразования базы данных "Местообитания Восточной -Фенноскандии" из формата Microsoft Access в XML-формат электронной -библиотеки КарНЦ РАН была разработана программная система DbReader. - -Программа DbReader является универсальным средством для представления -информации из баз данных в текстовых форматах. Программа обрабатывает -заданные шаблоны текстовых файлов и заменяет найденные в них -инструкции на результаты их выполнения. Различные инструкции позволяют -формировать SQL-запросы, выполнять их и обрабатывать полученные -данные. - - -* Формат инструкций: - - <%<список_функций>{:|\}<данные>%> - где - -<список_функций> - список имен функций, разделенных пробелами. - Может быть пустым. -<данные> - данные, передаваемые функции. - - -* Формат данных: - - [<список_аргументов>][<текст>] - где - -<список_аргументов> - список аргументов функции, разделенных пробелами. - Может быть пустым. -<текст> - текст, передаваемый функции без разбиения на аргументы. - Может быть пустым. Количество аргументов, после которого следует - текст, зависит от функции. - -Разделитель между списком функций и данными определяет, как должны -обрабатываться данные функции: -: - рекурсивная обработка, -\ - передать без обработки. - -Если в списке функций задано две и более функции, они выполняются, -начиная с последней, так что каждая функция получает в качестве данных -результат выполнения следующей функции. - -Каждая функция имеет код возврата - целое число. Код возврата -инструкции - код возврата первой в списке функции. Код возврата, -получаемый при обработке текста - сумма кодов возврата обработанных -инструкций. - -Вместо скобок '<', '>' можно использовать скобки '[', ']'. - - -* Реализованные функции: - -Функция: set -Аргументы: <имя> -Текст: <значение> -Действие: устанавливает значение переменной <имя> -Результат: <имя> -Код возврата: 1 - -Функция: get -Аргументы: <имя> -Результат: значение переменной <имя>. -Код возврата: 1, если значение переменной было установлено, 0 - иначе. - -Функция: prepare -Аргументы: <имя> -Текст: <запрос> -Действие: Подготавливает SQL-запрос <запрос> для выполнения, - записывает подготовленный запрос в переменную <имя>. -Результат: <имя> -Код возврата: 1 - -Функция: query -Аргументы: <имя_запроса> <шаблон> <парам1> ... <парамN> -Действие: Выполняет запрос с параметрами, подготовленный с помощью - функции prepare. Значения параметров подставляются в - запрос вместо символа '?'. Значения полей ответа будут - записаны, как переменные шаблона <шаблон>. При обработки - шаблона <шаблон> также определяется переменная NUMBER, - содержащая номер текущей строки ответа. Переменные, - определенные в вызывающем шаблоне, доступны из шаблона - <шаблон> по имени SUPER.<имя_переменной>. - -Результат: результат обработки шаблона <шаблон> для каждой строки - ответа. -Код возврата: количество полученных строк ответа. - -Функция: optional -Текст: <данные> -Результат: <данные>, если при обработке данных был получен - код возврата отличный от 0, иначе - пустая строка. -Код возврата: 1, если результат - пустая строка, 0 - иначе. - -Функция: image -Аргументы: <исх_файл> <кон_файл> <формат> [<макс_ширина> [<макс_высота>]] -Действие: Загружает изображение из файла <исх_файл> (путь определяется - относительно конфигурационного параметра "resource_base") и - преобразует его в указанный формат, сохраняя результат в - <кон_файл>. Если заданы максимальная высота и ширина, большие - изображения будут уменьшены. -Результат: <кон_файл> при успешном выполнении, пустая строка - иначе. -Код возврата: 1 при успешном выполнении, 0 - иначе. - -Функция: copy -Аргументы: <исх_файл> <кон_файл> -Действие: Копирует файл <исх_файл> в файл <кон_файл> - (путь <исх_файл> определяется относительно - конфигурационного параметра "resource_base"). -Результат: <кон_файл> при успешном выполнении, пустая строка - иначе. -Код возврата: 1 при успешном выполнении, 0 - иначе. - -Функция: write -Аргументы: <имя_файла> -Текст: <данные> -Действие: Записывает <данные> в файл <исх_файл>. -Результат: <кон_файл> при успешном выполнении, пустая строка - иначе. -Код возврата: 1 при успешном выполнении, 0 - иначе. - -Функция: read -Текст: <имя_файла> -Действие: Читает файл <имя_файла>. -Результат: прочитанные данные при успешном выполнении, пустая - строка - иначе. -Код возврата: 1 при успешном выполнении, 0 - иначе. - -Функция: include -Текст: <имя_файла> -Действие: включает шаблон из файла <имя_файла>. -Результат: результат обработки шаблона. -Код возврата: код возврата, полученный при обработке шаблона. - -Функция: ! -Текст: <данные> -Действие: нет. -Результат: нет. -Код возврата: код возврата, полученный при обработке текста данных. - -Функция: replace -Аргументы: <стр1> <стр2> -Текст: <данные> -Результат: данные, с замененными вхождениями подстроки <стр1> - на <стр2>. -Код возврата: код возврата, полученный при обработке текста данных. - -Функция: xml_escape -Текст: <данные> -Результат: текст <данные>, в котором символы - '&', '<', '>', '`', '\' заменены на соответствующие - сущности XML. -Код возврата: код возврата, полученный при обработке текста данных. - -Функция: xml_cdata -Текст: <данные> -Результат: данные в виде блока XML CDATA. -Код возврата: код возврата, полученный при обработке текста данных. - -Система DbReader расширяема: возможно добавление в систему новых -функций, реализованных в виде классов на языке Java. - - -* Применение системы DbReader для преобразования базы данных - "Местообитания Восточной Фенноскандии" из формата Microsoft Access в - XML-формат электронной библиотеки КарНЦ РАН - -Для преобразования используются две таблицы базы данных "Местообитания -Восточной Фенноскандии" (перечислены только используемые поля): - -biotopelist (code, rangcode, rusname, engname, descript, geobotdescr, - contributors, descrdate) - - code - счетчик, ключевое поле; - rangcode - поле в формате ABBCCDDEE, где А, BB, CC, DD, ЕЕ - коды - класса, подклассов и растения; - rusname, engname, descript, geobotdescr - текстовые поля; - descrdate - дата. - -photos (biotope, photo, authphoto) - - biotope - число, указывает на code в biotopelist; - photo - имя файла фотографии; - authphoto - текст. - -Требуется сгенерировать xml-файл для каждой записи в biotopelist, файл -со списком классов, файл со списком растений, полноразмерные и -уменьшенные версии каждой фотографии. - -Для генерации xml-файлов с описаниями биотопов использовался следующий -шаблон DbReader (файл biotope.template): - ----------------------------------------------------------------------- -<?xml version="1.0" encoding="ISO-8859-5"?> -<!DOCTYPE описание_вида SYSTEM "brief.dtd"> -<!-- rangcode: <%xml_escape get\rangcode%> --> -<описание_вида show="0"> - <рисунки display="0"> - <%optional:<карта_распространения номер="1" - file="<%xml_escape image:maps/<%get\rangcode%>.gif maps/<%get\code%>.png png%>"/>%> -<%query:photo_sql [%\<%include\photo.template%>%] <%get\code%>%> - </рисунки> - <название><%xml_escape get\rusname%></название> - <класс><%xml_escape get\class0%></класс> - <подкласс1><%xml_escape get\class1%></подкласс1> - <подкласс2><%xml_escape get\class2%></подкласс2> - <подкласс3><%xml_escape get\class3%></подкласс3> - <краткая_характеристика rows="3"><%xml_cdata get\descript%></краткая_характеристика> - <пример_описания rows="3"><%xml_cdata get\geobotdescr%></пример_описания> - <авторы_описания><%xml_escape get\contributors%></авторы_описания> -</описание_вида> ----------------------------------------------------------------------- - -Соответствующий SQL-запрос, при выполнении которого устанавливаются -значения переменных шаблона rangcode, rusname, class0, class1, class2, -class3, descript, geobotdescr и contributors (файл biotope.sql): - ----------------------------------------------------------------------- -SELECT t1.*, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1) -AND Right(t2.rangcode, 8) = '00000000' -AND Right(t1.rangcode, 8) <> '00000000') AS class0, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 3) = Left(t1.rangcode, 3) -AND Right(t2.rangcode, 6) = '000000' -AND Right(t1.rangcode, 6) <> '000000') AS class1, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 5) = Left(t1.rangcode, 5) -AND Right(t2.rangcode, 4) = '0000' -AND Right(t1.rangcode, 4) <> '0000') AS class2, - -(SELECT t2.rusname FROM biotopelist AS t2 -WHERE Left(t2.rangcode, 7) = Left(t1.rangcode, 7) -AND Right(t2.rangcode, 2) = '00' -AND Right(t1.rangcode, 2) <> '00') AS class3 - -FROM biotopelist AS t1 -WHERE rusname ----------------------------------------------------------------------- - -Шаблон biotope.template содержит инструкцию <%include\photo.template%>, -включающую шаблон описания фотографии (файл photo.template): - ----------------------------------------------------------------------- - <фотография num="<%xml_escape get\NUMBER%>" - <%optional:автор="<%xml_escape get\authphoto%>" %>text="" - file="<%xml_escape image:biotopephotos/<%get\photo%> images/<%get\SUPER.code%>_<%get\NUMBER%>.jpg jpg 300 300%>" - big="<%xml_escape copy:biotopephotos/<%get\photo%> images/big/<%get\SUPER.code%>_<%get\NUMBER%>.jpg%>"/> ----------------------------------------------------------------------- - -Соответствующий SQL-запрос для получения описания фотографий -(photo.sql): - ----------------------------------------------------------------------- -SELECT * from photos WHERE biotope = ? ----------------------------------------------------------------------- - -Шаблон, генерирующий список классов (файл classes.template): - ----------------------------------------------------------------------- -<?xml version="1.0" encoding="ISO-8859-5"?> -<классификация><%query:class_sql [%\ - <!-- rangcode: <%xml_escape get\rangcode%> --> - <класс id="<%get\NUMBER%>"><%xml_escape get\rusname%></класс>%]%> -</классификация> ----------------------------------------------------------------------- - -Соответствующий SQL-запрос (class.sql): - ----------------------------------------------------------------------- -SELECT t1.* -FROM biotopelist AS t1 -WHERE rusname AND Right(t1.rangcode, 8) = '00000000' - AND EXISTS - (SELECT NULL FROM biotopelist AS t2 - WHERE Left(t2.rangcode, 1) = Left(t1.rangcode, 1) - AND Right(t2.rangcode, 8) <> '00000000') ----------------------------------------------------------------------- - -Шаблон, генерирующий список растений (файл plants.template): - ----------------------------------------------------------------------- -<?xml version="1.0" encoding="ISO-8859-5"?> -<растения><%query:plant_sql [%\ - <!-- rangcode: <%xml_escape get\rangcode%> --> - <растение><%xml_escape get\rusname%></растение>%]%> -</растения> ----------------------------------------------------------------------- - -Соответствующий SQL-запрос (plant.sql): - ----------------------------------------------------------------------- -SELECT t1.* -FROM biotopelist AS t1 -WHERE rusname AND Right(t1.rangcode, 2) <> '00' ----------------------------------------------------------------------- - -Система DbReader начинает работу с обработки шаблона index.template, -который содержит вызовы перечисленных выше SQL-запросов и включения -шаблонов: - ----------------------------------------------------------------------- -<%!: - <%prepare:biotope_sql <%read\biotope.sql%>%> - <%prepare:photo_sql <%read\photo.sql%>%> - <%prepare:class_sql <%read\class.sql%>%> - <%prepare:plant_sql <%read\plant.sql%>%> - - <%query:biotope_sql [%\<%write:<%get\code%>.xml <%include\biotope.template%>%> %]%> - - <%write:classes.xml <%include\classes.template%>%> - <%write:plants.xml <%include\plants.template%>%> -%> ----------------------------------------------------------------------- - -Пример сгенерированного XML-файла: - ----------------------------------------------------------------------- -<?xml version="1.0" encoding="ISO-8859-5"?> -<!DOCTYPE описание_вида SYSTEM "brief.dtd"> -<!-- rangcode: E04020302 --> -<описание_вида show="0"> - <рисунки display="0"> - <фотография num="1" автор="Крышень А.М." text="" - file="images/3_1.jpg" - big="images/big/3_1.jpg"/> - <фотография num="2" автор="Крышень А.М." text="" - file="images/3_2.jpg" - big="images/big/3_2.jpg"/> - </рисунки> - <название>Betula sp. - Avenella flexuosa - Polytrichum commune</название> - <класс>E. Суходольные местообитания</класс> - <подкласс1>Автоморфные влажные</подкласс1> - <подкласс2></подкласс2> - <подкласс3></подкласс3> - <краткая_характеристика rows="3"><![CDATA[Развиваются на луговиковых вырубках лесов черничного типа. Через 5 - 7 лет после рубки порослевая береза выходит из яруса травянистых растений, ее влияние сказывается, в первую очередь, на влажности почвы.]]></краткая_характеристика> - <пример_описания rows="3"></пример_описания> - <авторы_описания></авторы_описания> -</описание_вида> ----------------------------------------------------------------------- - - -* Структура программы DbReader - -Программа DbReader написана на языке программирования Java и состоит -из следующих основных классов: - -ru.karrc.dbreader.DbReader: cодержит точку входа программы. Загружает -конфигурацию, устанавливает соединение с источником данных с помощью -библиотеки JDBC, запускает обработку основного шаблона. - -ru.karrc.dbreader.TemplateParser: осуществляет разбор шаблона, -обработку инструкций и вызов функций. - -ru.karrc.dbreader.Function: абстрактный класс. Реализации всех функций -DbReader наследуют этот класс. - -ru.karrc.dbreader.FunctionDataParser: обработчик данных -функции. Посволяет получить список аргументов и текст, передаваемый -функции. При необходимости вызывает рекурсивную обработку данных с -помощью TemplateParser. - -ru.karrc.dbreader.Functions: содержит реализации функций в виде -анонимных классов, наследующих Function. - -ru.karrc.dbreader.TemplateParser: исключение, выбрасываемое в случае -возникновения ошибки при обработке шаблона. - -Кроме того, реализовано несколько впомогательных классов, которые -используются в реализациях функций системы. - - -* Метрики реализованной программной системы. - -Количество файлов исходного кода: 8, -Количество Java-классов (включая анонимные): 27, -Общее количество строк исходного текста: 1311, -Количество строк кода (исключая пустые строки и комментарии): 812, -Количество строк комментариев: 180. - - -* Заключение - -Автором была разработана программная система DbReader, которая -является расширяемым и универсальным средством для представления -информации из баз данных в текстовых форматах. С помощью системы -DbReader база данных "Местообитания Восточной Фенноскандии" была -переведена в XML-формат электронной библиотеки КарНЦ РАН.
--- a/misc/biotopes/doc/readme.html Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "DTD/xhtml1-transitional.dtd"> - -<html> - -<head> - <title>DbReader</title> - <meta http-equiv="Content-Type" content="text/html; charset=koi8-r" /> -</head> - -<body> -<h1>DbReader</h1> - -<h2>Установка программы</h2> -<ol> -<li>Распаковать архив.</li> - -<li>Установить источник данных:<br /> -в Windows 2000: Панель управления/Администрирование/Источники данных (ODBC), добавить biotopes-data.mdb.</li> - -<li>Настроить программу:<br /> -В файле dbreader.properties указать имя, присвоенное источнику данных:<br /> - <code>resource: jdbc:odbc:<em>имя</em></code><br /> -и путь к каталогу, относительно которого программа будет искать изображения (содержащий biotopephotos и maps):<br /> - <code>resource_base: C:\\biotopes</code><br /> -(символ '\' необходимо дублировать)</li> - -<li>Запуск программы:<br /> -<code>dbreader.bat</code> или<br /> -<code>java -jar dbreader.jar</code>.<br /> -Для запуска необходима Java Runtime Environment (JRE) 5.0, можно скачать с <a href="http://java.sun.com/j2se/1.5.0/download.jsp">http://java.sun.com/j2se/1.5.0/download.jsp</a>. Возможно, будет работать и со старыми версиями JRE - не проверял. - -Все значения файла конфигурации можно переопределять при запуске программы:<br /> -команда <code>java -Dru.karrc.dbreader.<em>ключ</em>=<em>значение</em> -jar dbreader.jar</code><br /> -(например: <code>java -Dru.karrc.dbreader.log=dbreader.log -jar dbreader.jar</code>)</li> -</ol> - -<h2>Работа программы</h2> - -<p>Программа выполняет запрос biotope.sql (или другой, указанный в dbreader.properties), после чего обрабатывает файл biotope.template, заменяя найденные в нем инструкции на результаты их выполнения.</p> -<p>Формат инструкций: <code><%<em>список_функций</em>[:|\]<em>данные</em>%></code>, <em>список функций</em> - имена функций разделенные пробелом, список может быть пустым. Если указано несколько функций, они выполняются начиная с последней.</p> - -<h3>Разделители между списком функций и данными</h3> - -<ul> - <li><code>:</code> - данные будут обрабатываться рекурсивно.</li> - <li><code>\</code> - данные будут переданы функции без обработки. Можно использовать для экранирования комбинаций символов <code><%</code> и <code>%></code> (<code><%\<%%></code> и <code><%\%%>></code>).</li> -</ul> - -<h3>Функции</h3> - -<ul> - <li><code><%get:<em>имя</em>%></code><br /> - Заменяется на значение встроенной переменной или колонки запроса.</li> - - <li><code><%optional:<em>текст</em>%></code><br /> - Заменяется на <em>текст</em>, если в нем найдены инструкции, заменившиеся на непустые строки, иначе заменяется на пустую строку.</li> - - <li><code><%escape:<em>текст</em>%></code><br /> - Заменяет в тексте "опасные" символы (таблица замен задается в файле конфигурации).</li> - - <li><code><%invoke:<em>имя</em>; <em>парам1</em> <em>парам2</em> ... <em>парамN</em>%></code><br /> - Выполняет запрос с параметрами <em>имя</em>.sql и заменяется на результаты обработки шаблона <em>имя</em>.template. Значения параметров подставляются в запрос вместо символа '?'.</li> - - <li><code><%image:<em>исх_файл</em> <em>кон_файл</em> <em>формат</em> [<em>макс_ширина</em>] [<em>макс_высота</em>]%></code><br /> - Загружает изображение из файла <em>исх_файл</em> (путь определяется относительно конфигурационного параметра "resource_base") и преобразует его в указанный формат, сохраняя результат в <em>кон_файл</em>. Если заданы максимальная высота и ширина, большие изображения будут уменьшены. -При успешном выполнении, инструкция <code><%image:...%></code> будет заменена на значение <em>кон_файл</em>, иначе - на пустую строку.</li> - - <li><code><%copy:<em>исх_файл</em> <em>кон_файл</em>%></code><br /> - Копирует файл <em>исх_файл</em> (путь определяется относительно конфигурационного параметра "resource_base") в <em>кон_файл</em>. При успешном выполнении, инструкция <code><%copy:...%></code> будет заменена на значение <em>кон_файл</em>, иначе - на пустую строку.</li> -</ul> - -<h3>Встроенные переменные</h3> - -<p><code>NUMBER</code> - порядковый номер строки результата выполнения запроса. -Чтобы обратиться к переменной запроса, из которого обрабатываемый шаблон был вызван с помощью функции invoke, перед именем переменной нужно добавить <code>SUPER.</code> (например: <code>SUPER.NUMBER</code>).</p> - -<h3>Пример</h3> - -<p>Следующая инструкция получит значение из столбца name и заменит в нем специальные символы:</p> -<p><code><%escape get:name%></code></p> - -<p align="right"><i><a href="mailto:kryshen@cs.karelia.ru">Михаил Крышень</a></i></p> - -</body> -</html>
--- a/misc/biotopes/doc/readme.txt Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -text/plain; charset=UTF-8 - -пёя│я┌п╟п╫п╬п╡п╨п╟ п©я─п╬пЁя─п╟п╪п╪я▀ -------------------- - -1. п═п╟я│п©п╟п╨п╬п╡п╟я┌я▄ п╟я─я┘п╦п╡. - -2. пёя│я┌п╟п╫п╬п╡п╦я┌я▄ п╦я│я┌п╬я┤п╫п╦п╨ п╢п╟п╫п╫я▀я┘: -п╡ Windows 2000: п÷п╟п╫п╣п╩я▄ я┐п©я─п╟п╡п╩п╣п╫п╦я▐/п░п╢п╪п╦п╫п╦я│я┌я─п╦я─п╬п╡п╟п╫п╦п╣/п≤я│я┌п╬я┤п╫п╦п╨п╦ п╢п╟п╫п╫я▀я┘ (ODBC), п╢п╬п╠п╟п╡п╦я┌я▄ biotopes.mdb. - -3. п²п╟я│я┌я─п╬п╦я┌я▄ п©я─п╬пЁя─п╟п╪п╪я┐: -п▓ я└п╟п╧п╩п╣ dbreader.properties я┐п╨п╟п╥п╟я┌я▄ п╦п╪я▐, п©я─п╦я│п╡п╬п╣п╫п╫п╬п╣ п╦я│я┌п╬я┤п╫п╦п╨я┐ п╢п╟п╫п╫я▀я┘: - "resource: jdbc:odbc:<п╦п╪я▐>" -п╦ п©я┐я┌я▄ п╨ п╨п╟я┌п╟п╩п╬пЁя┐, п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬я┌п╬я─п╬пЁп╬ п©я─п╬пЁя─п╟п╪п╪п╟ п╠я┐п╢п╣я┌ п╦я│п╨п╟я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ (я│п╬п╢п╣я─п╤п╟я┴п╦п╧ biotopephotos п╦ maps): - "resource_base: C:\\biotopes" -(я│п╦п╪п╡п╬п╩ '\' п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬ п╢я┐п╠п╩п╦я─п╬п╡п╟я┌я▄) - -4. п≈п╟п©я┐я│п╨ п©я─п╬пЁя─п╟п╪п╪я▀: dbreader.bat п╦п╩п╦ "java -jar dbreader.jar" -п■п╩я▐ п╥п╟п©я┐я│п╨п╟ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╟ Java Runtime Environment (JRE) 5.0, п╪п╬п╤п╫п╬ я│п╨п╟я┤п╟я┌я▄ я│ http://java.sun.com/j2se/1.5.0/download.jsp. п▓п╬п╥п╪п╬п╤п╫п╬, п╠я┐п╢п╣я┌ я─п╟п╠п╬я┌п╟я┌я▄ п╦ я│п╬ я│я┌п╟я─я▀п╪п╦ п╡п╣я─я│п╦я▐п╪п╦ JRE - п╫п╣ п©я─п╬п╡п╣я─я▐п╩. - -п▓я│п╣ п╥п╫п╟я┤п╣п╫п╦я▐ я└п╟п╧п╩п╟ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ п╪п╬п╤п╫п╬ п©п╣я─п╣п╬п©я─п╣п╢п╣п╩я▐я┌я▄ п©я─п╦ п╥п╟п©я┐я│п╨п╣ п©я─п╬пЁя─п╟п╪п╪я▀: - п╨п╬п╪п╟п╫п╢п╟ "java -Dru.karrc.dbreader.<п╨п╩я▌я┤>=<п╥п╫п╟я┤п╣п╫п╦п╣> -jar dbreader.jar" -(п╫п╟п©я─п╦п╪п╣я─: "java -Dru.karrc.dbreader.log=dbreader.log -jar dbreader.jar") - - -п═п╟п╠п╬я┌п╟ п©я─п╬пЁя─п╟п╪п╪я▀ ----------------- - -п÷я─п╬пЁя─п╟п╪п╪п╟ п╡я▀п©п╬п╩п╫я▐п╣я┌ п╥п╟п©я─п╬я│ biotope.sql (п╦п╩п╦ п╢я─я┐пЁп╬п╧, я┐п╨п╟п╥п╟п╫п╫я▀п╧ п╡ dbreader.properties), п©п╬я│п╩п╣ я┤п╣пЁп╬ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣я┌ я└п╟п╧п╩ biotope.template, п╥п╟п╪п╣п╫я▐я▐ п╫п╟п╧п╢п╣п╫п╫я▀п╣ п╡ п╫п╣п╪ п╦п╫я│я┌я─я┐п╨я├п╦п╦ п╫п╟ я─п╣п╥я┐п╩я▄я┌п╟я┌я▀ п╦я┘ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐. - -п╓п╬я─п╪п╟я┌ п╦п╫я│я┌я─я┐п╨я├п╦п╧: "<%я│п©п╦я│п╬п╨_я└я┐п╫п╨я├п╦п╧[:|\]п╢п╟п╫п╫я▀п╣%>", я│п©п╦я│п╬п╨ я└я┐п╫п╨я├п╦п╧ - п╦п╪п╣п╫п╟ я└я┐п╫п╨я├п╦п╧ я─п╟п╥п╢п╣п╩п╣п╫п╫я▀п╣ п©я─п╬п╠п╣п╩п╬п╪, я│п©п╦я│п╬п╨ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪. п∙я│п╩п╦ я┐п╨п╟п╥п╟п╫п╬ п╫п╣я│п╨п╬п╩я▄п╨п╬ я└я┐п╫п╨я├п╦п╧, п╬п╫п╦ п╡я▀п©п╬п╩п╫я▐я▌я┌я│я▐ п╫п╟я┤п╦п╫п╟я▐ я│ п©п╬я│п╩п╣п╢п╫п╣п╧. - -п═п╟п╥п╢п╣п╩п╦я┌п╣п╩п╦ п╪п╣п╤п╢я┐ я│п©п╦я│п╨п╬п╪ я└я┐п╫п╨я├п╦п╧ п╦ п╢п╟п╫п╫я▀п╪п╦: -':' - п╢п╟п╫п╫я▀п╣ п╠я┐п╢я┐я┌ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟я┌я▄я│я▐ я─п╣п╨я┐я─я│п╦п╡п╫п╬. -'\' - п╢п╟п╫п╫я▀п╣ п╠я┐п╢я┐я┌ п©п╣я─п╣п╢п╟п╫я▀ я└я┐п╫п╨я├п╦п╦ п╠п╣п╥ п╬п╠я─п╟п╠п╬я┌п╨п╦. п°п╬п╤п╫п╬ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╢п╩я▐ я█п╨я─п╟п╫п╦я─п╬п╡п╟п╫п╦я▐ п╨п╬п╪п╠п╦п╫п╟я├п╦п╧ я│п╦п╪п╡п╬п╩п╬п╡ "<%" п╦ "%>" ("<%\<%%>" п╦ "<%\%%>>"). - -п╓я┐п╫п╨я├п╦п╦: -<%get:<п╦п╪я▐>%> - п╥п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ п╥п╫п╟я┤п╣п╫п╦п╣ п╡я│я┌я─п╬п╣п╫п╫п╬п╧ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ п╦п╩п╦ п╨п╬п╩п╬п╫п╨п╦ п╥п╟п©я─п╬я│п╟. - -<%optional:<я┌п╣п╨я│я┌>%> -п≈п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ <я┌п╣п╨я│я┌>, п╣я│п╩п╦ п╡ п╫п╣п╪ п╫п╟п╧п╢п╣п╫я▀ п╦п╫я│я┌я─я┐п╨я├п╦п╦, п╥п╟п╪п╣п╫п╦п╡я┬п╦п╣я│я▐ п╫п╟ п╫п╣п©я┐я│я┌я▀п╣ я│я┌я─п╬п╨п╦, п╦п╫п╟я┤п╣ п╥п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ п©я┐я│я┌я┐я▌ я│я┌я─п╬п╨я┐. - -<%escape:<я┌п╣п╨я│я┌>%> -п≈п╟п╪п╣п╫я▐п╣я┌ п╡ я┌п╣п╨я│я┌п╣ "п╬п©п╟я│п╫я▀п╣" я│п╦п╪п╡п╬п╩я▀ (я┌п╟п╠п╩п╦я├п╟ п╥п╟п╪п╣п╫ п╥п╟п╢п╟п╣я┌я│я▐ п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦). - -<%invoke:<п╦п╪я▐> <п©п╟я─п╟п╪1> <п©п╟я─п╟п╪2> ... <п©п╟я─п╟п╪N>%> -п▓я▀п©п╬п╩п╫я▐п╣я┌ п╥п╟п©я─п╬я│ я│ п©п╟я─п╟п╪п╣я┌я─п╟п╪п╦ <п╦п╪я▐>.sql п╦ п╥п╟п╪п╣п╫я▐п╣я┌я│я▐ п╫п╟ я─п╣п╥я┐п╩я▄я┌п╟я┌я▀ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟ <п╦п╪я▐>.template. п≈п╫п╟я┤п╣п╫п╦я▐ п©п╟я─п╟п╪п╣я┌я─п╬п╡ п©п╬п╢я│я┌п╟п╡п╩я▐я▌я┌я│я▐ п╡ п╥п╟п©я─п╬я│ п╡п╪п╣я│я┌п╬ я│п╦п╪п╡п╬п╩п╟ '?'. - -<%image:<п╦я│я┘_я└п╟п╧п╩> <п╨п╬п╫_я└п╟п╧п╩> <я└п╬я─п╪п╟я┌> [<п╪п╟п╨я│_я┬п╦я─п╦п╫п╟>] [<п╪п╟п╨я│_п╡я▀я│п╬я┌п╟>]%> -п≈п╟пЁя─я┐п╤п╟п╣я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ п╦п╥ я└п╟п╧п╩п╟ <п╦я│я┘_я└п╟п╧п╩> (п©я┐я┌я▄ п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base") п╦ п©я─п╣п╬п╠я─п╟п╥я┐п╣я┌ п╣пЁп╬ п╡ я┐п╨п╟п╥п╟п╫п╫я▀п╧ я└п╬я─п╪п╟я┌, я│п╬я┘я─п╟п╫я▐я▐ я─п╣п╥я┐п╩я▄я┌п╟я┌ п╡ <п╨п╬п╫_я└п╟п╧п╩>. п∙я│п╩п╦ п╥п╟п╢п╟п╫я▀ п╪п╟п╨я│п╦п╪п╟п╩я▄п╫п╟я▐ п╡я▀я│п╬я┌п╟ п╦ я┬п╦я─п╦п╫п╟, п╠п╬п╩я▄я┬п╦п╣ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╠я┐п╢я┐я┌ я┐п╪п╣п╫я▄я┬п╣п╫я▀. -п÷я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, п╦п╫я│я┌я─я┐п╨я├п╦я▐ "<%!image ...%>" п╠я┐п╢п╣я┌ п╥п╟п╪п╣п╫п╣п╫п╟ п╫п╟ п╥п╫п╟я┤п╣п╫п╦п╣ <п╨п╬п╫_я└п╟п╧п╩>, п╦п╫п╟я┤п╣ - п╫п╟ п©я┐я│я┌я┐я▌ я│я┌я─п╬п╨я┐. - -<%copy:<п╦я│я┘_я└п╟п╧п╩> <п╨п╬п╫_я└п╟п╧п╩>%> -п п╬п©п╦я─я┐п╣я┌ я└п╟п╧п╩ <п╦я│я┘_я└п╟п╧п╩> (п©я┐я┌я▄ п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base"). -п÷я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, п╦п╫я│я┌я─я┐п╨я├п╦я▐ "<%!copy ...%>" п╠я┐п╢п╣я┌ п╥п╟п╪п╣п╫п╣п╫п╟ п╫п╟ п╥п╫п╟я┤п╣п╫п╦п╣ <п╨п╬п╫_я└п╟п╧п╩>, п╦п╫п╟я┤п╣ - п╫п╟ п©я┐я│я┌я┐я▌ я│я┌я─п╬п╨я┐. - -п▓я│я┌я─п╬п╣п╫п╫я▀п╣ п©п╣я─п╣п╪п╣п╫п╫я▀п╣: -NUMBER - п©п╬я─я▐п╢п╨п╬п╡я▀п╧ п╫п╬п╪п╣я─ я│я┌я─п╬п╨п╦ я─п╣п╥я┐п╩я▄я┌п╟я┌п╟ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐ п╥п╟п©я─п╬я│п╟. -п╖я┌п╬п╠я▀ п╬п╠я─п╟я┌п╦я┌я▄я│я▐ п╨ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ п╥п╟п©я─п╬я│п╟, п╦п╥ п╨п╬я┌п╬я─п╬пЁп╬ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣п╪я▀п╧ я┬п╟п╠п╩п╬п╫ п╠я▀п╩ п╡я▀п╥п╡п╟п╫ я│ п©п╬п╪п╬я┴я▄я▌ я└я┐п╫п╨я├п╦п╦ invoke, п©п╣я─п╣п╢ п╦п╪п╣п╫п╣п╪ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ п╫я┐п╤п╫п╬ п╢п╬п╠п╟п╡п╦я┌я▄ "SUPER." (п╫п╟п©я─п╦п╪п╣я─: "SUPER.NUMBER"). - -п÷я─п╦п╪п╣я─: -п║п╩п╣п╢я┐я▌я┴п╟я▐ п╦п╫я│я┌я─я┐п╨я├п╦я▐ п©п╬п╩я┐я┤п╦я┌ п╥п╫п╟я┤п╣п╫п╦п╣ п╦п╥ я│я┌п╬п╩п╠я├п╟ name п╦ п╥п╟п╪п╣п╫п╦я┌ п╡ п╫п╣п╪ я│п©п╣я├п╦п╟п╩я▄п╫я▀п╣ я│п╦п╪п╡п╬п╩я▀: -<%escape get:name%>
--- a/misc/biotopes/main.template Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -<%!: - <%prepare:biotope_sql <%read\biotope.sql%>%> - <%prepare:photo_sql <%read\photo.sql%>%> - <%prepare:class_sql <%read\class.sql%>%> - <%prepare:plant_sql <%read\plant.sql%>%> - - <%query:biotope_sql [%\<%write:<%db\code%>.xml <%include\biotope.template%>%> %]%> - - <%write:classes.xml <%include\classes.template%>%> - <%write:plants.xml <%include\plants.template%>%> -%>
--- a/misc/biotopes/photo.sql Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -SELECT * from photos WHERE biotope = ?
--- a/misc/biotopes/photo.template Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ - <ДчБчсЮпДьО num="<%number\%>" <%optional:прБчЮ="<%xml_escape db\authphoto%>" %>text="" - file="<%xml_escape image:biotopephotos/<%db\photo%> images/<%super.db\code%>_<%number\%>.jpg jpg 300 300%>" - big="<%xml_escape copy:biotopephotos/<%db\photo%> images/big/<%super.db\code%>_<%number\%>.jpg%>"/>
--- a/misc/biotopes/plant.sql Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -SELECT t1.* -FROM biotopelist AS t1 -WHERE rusname AND Right(t1.rangcode, 2) <> '00'
--- a/misc/biotopes/plants.template Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-5"?> -<ЮпАБущьО><%query:plant_sql [%\ - <!-- rangcode: <%xml_escape db\rangcode%> --> - <ЮпАБущьу><%xml_escape db\rusname%></ЮпАБущьу>%]%> -</ЮпАБущьО>
--- a/misc/biotopes/tema.properties Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -# Data source configuration -resource : jdbc:odbc:biotopes-data -driver : sun.jdbc.odbc.JdbcOdbcDriver - -# Base directory for images and files -resource_base : C:\\biotopes\\db - -# Template to start processing with -main_template : main.template - -# File encodings -input_encoding : ISO-8859-5 -output_encoding : ISO-8859-5 - -# Cache templates -cache_read : true - -# Output main_template parsing result to stderr -#output : stderr - -# File to output error messages (redirect stderr) -#log : tema.log
--- a/misc/manual-ru-old/index.html Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,370 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "DTD/xhtml1-transitional.dtd"> - -<html> - -<head> - <title>п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA</title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -</head> - -<body> -<h1>п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA</h1> - -<p>п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣я┌ п╥п╟п╢п╟п╫п╫я▀п╣ я┬п╟п╠п╩п╬п╫я▀ я┌п╣п╨я│я┌п╬п╡я▀я┘ я└п╟п╧п╩п╬п╡ п╦ -п╥п╟п╪п╣п╫я▐п╣я┌ п╫п╟п╧п╢п╣п╫п╫я▀п╣ п╡ п╫п╦я┘ п╦п╫я│я┌я─я┐п╨я├п╦п╦ п╫п╟ я─п╣п╥я┐п╩я▄я┌п╟я┌я▀ п╦я┘ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐. -</p><p> -п·я│п╬п╠п╣п╫п╫п╬я│я┌п╦: -</p> -<ul> - <li>п═п╟я│я┬п╦я─я▐п╣п╪п╬я│я┌я▄: п╡п╬п╥п╪п╬п╤п╫п╬ п╢п╦п╫п╟п╪п╦я┤п╣я│п╨п╦ п©п╬п╢п╨п╩я▌я┤п╟я┌я▄ п╫п╬п╡я▀п╣ я└я┐п╫п╨п╦п╦, - я─п╣п╟п╩п╦п╥п╬п╡п╟п╫п╫я▀п╣ п╡ п╡п╦п╢п╣ п╨п╩п╟я│я│п╬п╡ п╫п╟ Java.</li> - <li>п═п╟п╠п╬я┌п╟ я│ п╠п╟п╥п╟п╪п╦ п╢п╟п╫п╫я▀я┘: п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ SQL-п╥п╟п©я─п╬я│п╬п╡ п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐ - п╢п╟п╫п╫я▀я┘.</li> - <li>п÷п╬я┌п╬я┤п╫п╟я▐ п╬п╠я─п╟п╠п╬я┌п╨п╟ п╢п╟п╫п╫я▀я┘: п╦п╫я│я┌я─я┐п╨я├п╦п╦ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟я▌я┌я│я▐ п©п╬ п╪п╣я─п╣ - я┤я┌п╣п╫п╦я▐ я┌п╣п╨я│я┌п╟ п╠п╣п╥ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬я│я┌п╦ п╥п╟пЁя─я┐п╥п╨п╦ я└п╟п╧п╩п╟ п╡ п╬п©п╣я─п╟я┌п╦п╡п╫я┐я▌ п©п╟п╪я▐я┌я▄ - п╦ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐ п©п╬п╩п╫п╬пЁп╬ я│п╦п╫я┌п╟п╨я│п╦я┤п╣я│п╨п╬пЁп╬ я─п╟п╥п╠п╬я─п╟.</li> -</ul> - -<p><b>п╓п╬я─п╪п╟я┌ п╦п╫я│я┌я─я┐п╨я├п╦п╧</b></p> - -<blockquote> - <code><%<i>я│п©п╦я│п╬п╨_я└я┐п╫п╨я├п╦п╧</i>{:|\|`}<i>п╢п╟п╫п╫я▀п╣</i>%></code> -</blockquote> -<p> -пЁп╢п╣<br /> - -<code><i>я│п©п╦я│п╬п╨_я└я┐п╫п╨я├п╦п╧</i></code> - я│п©п╦я│п╬п╨ п╦п╪п╣п╫ я└я┐п╫п╨я├п╦п╧, я─п╟п╥п╢п╣п╩п╣п╫п╫я▀я┘ - п©я─п╬п╠п╣п╩п╟п╪п╦. п°п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪.<br /> -<code><i>п╢п╟п╫п╫я▀п╣</i></code> - п╢п╟п╫п╫я▀п╣, п©п╣я─п╣п╢п╟п╡п╟п╣п╪я▀п╣ я└я┐п╫п╨я├п╦п╦. -</p> - -<p><b>п╓п╬я─п╪п╟я┌ п╢п╟п╫п╫я▀я┘</b></p> - -<blockquote> - <code> - [<i>я│п©п╦я│п╬п╨_п╟я─пЁя┐п╪п╣п╫я┌п╬п╡</i>][<i>я┌п╣п╨я│я┌</i>] - </code> -</blockquote> -<p> -пЁп╢п╣<br /> - -<code><i>я│п©п╦я│п╬п╨_п╟я─пЁя┐п╪п╣п╫я┌п╬п╡</i></code> - я│п©п╦я│п╬п╨ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡ я└я┐п╫п╨я├п╦п╦, я─п╟п╥п╢п╣п╩п╣п╫п╫я▀я┘ п©я─п╬п╠п╣п╩п╟п╪п╦. - п°п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪.<br /> -<code><i>я┌п╣п╨я│я┌</i></code> - я┌п╣п╨я│я┌, п©п╣я─п╣п╢п╟п╡п╟п╣п╪я▀п╧ я└я┐п╫п╨я├п╦п╦ п╠п╣п╥ я─п╟п╥п╠п╦п╣п╫п╦я▐ п╫п╟ п╟я─пЁя┐п╪п╣п╫я┌я▀. - п°п╬п╤п╣я┌ п╠я▀я┌я▄ п©я┐я│я┌я▀п╪. п п╬п╩п╦я┤п╣я│я┌п╡п╬ п╟я─пЁя┐п╪п╣п╫я┌п╬п╡, п©п╬я│п╩п╣ п╨п╬я┌п╬я─п╬пЁп╬ я│п╩п╣п╢я┐п╣я┌ - я┌п╣п╨я│я┌, п╥п╟п╡п╦я│п╦я┌ п╬я┌ я└я┐п╫п╨я├п╦п╦. -</p><p> -п═п╟п╥п╢п╣п╩п╦я┌п╣п╩я▄ п╪п╣п╤п╢я┐ я│п©п╦я│п╨п╬п╪ я└я┐п╫п╨я├п╦п╧ п╦ п╢п╟п╫п╫я▀п╪п╦ п╬п©я─п╣п╢п╣п╩я▐п╣я┌, п╨п╟п╨ п╢п╬п╩п╤п╫я▀ -п╬п╠я─п╟п╠п╟я┌я▀п╡п╟я┌я▄я│я▐ п╢п╟п╫п╫я▀п╣ я└я┐п╫п╨я├п╦п╦: -</p><p> -<code>:</code> - я─п╣п╨я┐я─я│п╦п╡п╫п╟я▐ п╬п╠я─п╟п╠п╬я┌п╨п╟,<br /> -<code>\</code> п╦п╩п╦ <code>`</code> - п©п╣я─п╣п╢п╟я┌я▄ п╠п╣п╥ п╬п╠я─п╟п╠п╬я┌п╨п╦. -</p><p> -п∙я│п╩п╦ п╡ я│п©п╦я│п╨п╣ я└я┐п╫п╨я├п╦п╧ п╥п╟п╢п╟п╫п╬ п╢п╡п╣ п╦ п╠п╬п╩п╣п╣ я└я┐п╫п╨я├п╦п╦, п╬п╫п╦ п╡я▀п©п╬п╩п╫я▐я▌я┌я│я▐, -п╫п╟я┤п╦п╫п╟я▐ я│ п©п╬я│п╩п╣п╢п╫п╣п╧, я┌п╟п╨ я┤я┌п╬ п╨п╟п╤п╢п╟я▐ я└я┐п╫п╨я├п╦я▐ п©п╬п╩я┐я┤п╟п╣я┌ п╡ п╨п╟я┤п╣я│я┌п╡п╣ п╢п╟п╫п╫я▀я┘ -я─п╣п╥я┐п╩я▄я┌п╟я┌ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐ я│п╩п╣п╢я┐я▌я┴п╣п╧ я└я┐п╫п╨я├п╦п╦. -</p><p> -п п╟п╤п╢п╟я▐ я└я┐п╫п╨я├п╦я▐ п╦п╪п╣п╣я┌ п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟ - я├п╣п╩п╬п╣ я┤п╦я│п╩п╬. п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟ -п╦п╫я│я┌я─я┐п╨я├п╦п╦ - п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟ п©п╣я─п╡п╬п╧ п╡ я│п©п╦я│п╨п╣ я└я┐п╫п╨я├п╦п╦. п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, -п©п╬п╩я┐я┤п╟п╣п╪я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ я┌п╣п╨я│я┌п╟ - я│я┐п╪п╪п╟ п╨п╬п╢п╬п╡ п╡п╬п╥п╡я─п╟я┌п╟ п╬п╠я─п╟п╠п╬я┌п╟п╫п╫я▀я┘ -п╦п╫я│я┌я─я┐п╨я├п╦п╧ (п╨п╟п╨ п©я─п╟п╡п╦п╩п╬, я│п╪я▀я│п╩ я█я┌п╬пЁп╬ п╥п╫п╟я┤п╣п╫п╦я▐ - п╨п╬п╩п╦я┤п╣я│я┌п╡п╬ п╦п╫я│я┌я─я┐п╨я├п╦п╧, -п╥п╟п╪п╣п╫п╣п╫п╫я▀я┘ п╫п╟ п╫п╣п©я┐я│я┌п╬п╧ я┌п╣п╨я│я┌). -</p><p> -п я─п╬п╪п╣ я│п╨п╬п╠п╬п╨ '<', '>', п╪п╬п╤п╫п╬ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ я│п╨п╬п╠п╨п╦ '[', ']'. -</p> - - -<h2>п╓я┐п╫п╨я├п╦п╦</h2> - -<p><code><b>set</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td> -<td><i>п╦п╪я▐</i></td></tr> - -<tr><td>п╒п╣п╨я│я┌:</td> -<td><i>п╥п╫п╟я┤п╣п╫п╦п╣</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td> -<td>пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌ п╥п╫п╟я┤п╣п╫п╦п╣ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ <i>п╦п╪я▐</i>.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td> -<td><i>п╦п╪я▐</i></td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td> -<td>1</td></tr> -</table> - -<p><code><b>define</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td> -<td><i>п╦п╪я▐</i></td></tr> - -<tr><td>п╒п╣п╨я│я┌:</td> -<td><i>я┬п╟п╠п╩п╬п╫</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п·п©я─п╣п╢п╣п╩я▐п╣я┌ п╫п╬п╡я┐я▌ я└я┐п╫п╨я├п╦я▌ <i>п╦п╪я▐</i>, п©я─п╦ -п╡я▀п╥п╬п╡п╣ п╨п╬я┌п╬я─п╬п╧ п╬п╠я─п╟п╠п╟я┌я▀п╡п╟п╣я┌я│я▐ <i>я┬п╟п╠п╩п╬п╫</i>. п÷я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ п╢п╬я│я┌я┐п©п╫я▀ -я└я┐п╫п╨я├п╦п╦ <code>nextarg</code> п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐ п╬я┤п╣я─п╣п╢п╫п╬пЁп╬ п╟я─пЁя┐п╪п╣п╫я┌п╟ -п╡я▀п╥я▀п╡п╟п╣п╪п╬п╧ я└я┐п╫п╨я├п╦п╦ п╦ <code>data</code> п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐ я┌п╣п╨я│я┌п╟.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td> -<td><i>п╦п╪я▐</i></td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td> -<td>1</td></tr> -</table> - -<p><code><b>load</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td> -<td><i>п╦п╪я▐</i> <i>п╦п╪я▐_п╨п╩п╟я│я│п╟</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td> - -<td>п·п©я─п╣п╢п╣п╩я▐п╣я┌ п╫п╬п╡я┐я▌ я└я┐п╫п╨я├п╦я▌ <i>п╦п╪я▐</i>. п═п╣п╟п╩п╦п╥п╟я├п╦я▐ я└я┐п╫п╨я├п╦п╦ п╬п©я─п╣п╢п╣п╩п╣п╫п╟ -Java-п╨п╩п╟я│я│п╬п╪ <i>п╦п╪я▐_п╨п╩п╟я│я│п╟</i>, п╫п╟я│п╩п╣п╢я┐я▌я┴п╦п╪ п╨п╩п╟я│я│ -<code>kryshen.tema.Function</code>.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td> -<td><i>п╦п╪я▐</i></td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td> -<td>1</td></tr> -</table> - -<p><code><b>prepare</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td> -<td><i>п╦п╪я▐</i></td></tr> - -<tr><td>п╒п╣п╨я│я┌:</td> -<td><i>п╥п╟п©я─п╬я│</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td> -<td>п÷п╬п╢пЁп╬я┌п╟п╡п╩п╦п╡п╟п╣я┌ SQL-п╥п╟п©я─п╬я│ <i>п╥п╟п©я─п╬я│</i> п╢п╩я▐ п╡я▀п©п╬п╩п╫п╣п╫п╦я▐, п╥п╟п©п╦я│я▀п╡п╟п╣я┌ -п©п╬п╢пЁп╬я┌п╬п╡п╩п╣п╫п╫я▀п╧ п╥п╟п©я─п╬я│ п╡ п©п╣я─п╣п╪п╣п╫п╫я┐я▌ <i>п╦п╪я▐</i>.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td> -<td><i>п╦п╪я▐</i></td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td> -<td>1</td></tr> -</table> - -<p><code><b>query</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td> -<td><i>п╦п╪я▐_п╥п╟п©я─п╬я│п╟</i> <i>я┬п╟п╠п╩п╬п╫</i> <i>п©п╟я─п╟п╪1</i> ... <i>п©п╟я─п╟п╪N</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td> -<td>п▓я▀п©п╬п╩п╫я▐п╣я┌ п╥п╟п©я─п╬я│ я│ п©п╟я─п╟п╪п╣я┌я─п╟п╪п╦, п©п╬п╢пЁп╬я┌п╬п╡п╩п╣п╫п╫я▀п╧ я│ п©п╬п╪п╬я┴я▄я▌ я└я┐п╫п╨я├п╦п╦ -prepare. п≈п╫п╟я┤п╣п╫п╦я▐ п©п╟я─п╟п╪п╣я┌я─п╬п╡ п©п╬п╢я│я┌п╟п╡п╩я▐я▌я┌я│я▐ п╡ п╥п╟п©я─п╬я│ п╡п╪п╣я│я┌п╬ я│п╦п╪п╡п╬п╩п╟ -'?'. п≈п╫п╟я┤п╣п╫п╦я▐ п©п╬п╩п╣п╧ п╬я┌п╡п╣я┌п╟ п╢п╬я│я┌я┐п©п╫я▀ я│ п©п╬п╪п╬я┴я▄я▌ я└я┐п╫п╨я├п╦п╦ <code>db</code>, -п╨п╟п╨ п©п╣я─п╣п╪п╣п╫п╫я▀п╣ я┬п╟п╠п╩п╬п╫п╟ <i>я┬п╟п╠п╩п╬п╫</i>. п÷я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟ я┌п╟п╨п╤п╣ -п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п©п╣я─п╣п╪п╣п╫п╫п╟я▐ <code>number</code>, я│п╬п╢п╣я─п╤п╟я┴п╟я▐ п╫п╬п╪п╣я─ я┌п╣п╨я┐я┴п╣п╧ -я│я┌я─п╬п╨п╦ п╬я┌п╡п╣я┌п╟.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td> -<td>я─п╣п╥я┐п╩я▄я┌п╟я┌ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟ <i>я┬п╟п╠п╩п╬п╫</i> п╢п╩я▐ п╨п╟п╤п╢п╬п╧ я│я┌я─п╬п╨п╦ -п╬я┌п╡п╣я┌п╟.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td> -<td>п п╬п╩п╦я┤п╣я│я┌п╡п╬ п©п╬п╩я┐я┤п╣п╫п╫я▀я┘ я│я┌я─п╬п╨ п╬я┌п╡п╣я┌п╟.</td></tr> -</table> - -<p><code><b>optional</b></code></p> - -<table> -<tr><td>п╒п╣п╨я│я┌:</td> -<td><i>п╢п╟п╫п╫я▀п╣</i></td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i>, п╣я│п╩п╦ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ п╢п╟п╫п╫я▀я┘ -п╠я▀п╩ п©п╬п╩я┐я┤п╣п╫ п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟ п╬я┌п╩п╦я┤п╫я▀п╧ п╬я┌ 0, п╦п╫п╟я┤п╣ - п©я┐я│я┌п╟я▐ -я│я┌я─п╬п╨п╟.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td> -<td>1, п╣я│п╩п╦ я─п╣п╥я┐п╩я▄я┌п╟я┌ - п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟, 0 - п╦п╫п╟я┤п╣.</td></tr> -</table> - -<p><code><b>image</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td> -<td><i>п╦я│я┘_я└п╟п╧п╩</i> <i>п╨п╬п╫_я└п╟п╧п╩</i> <i>я└п╬я─п╪п╟я┌</i> [<i>п╪п╟п╨я│_я┬п╦я─п╦п╫п╟</i> -[<i>п╪п╟п╨я│_п╡я▀я│п╬я┌п╟</i>]]</td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td> -<td>п≈п╟пЁя─я┐п╤п╟п╣я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ п╦п╥ я└п╟п╧п╩п╟ <i>п╦я│я┘_я└п╟п╧п╩</i> (п©я┐я┌я▄ п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ -п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base") п╦ -п©я─п╣п╬п╠я─п╟п╥я┐п╣я┌ п╣пЁп╬ п╡ я┐п╨п╟п╥п╟п╫п╫я▀п╧ я└п╬я─п╪п╟я┌, я│п╬я┘я─п╟п╫я▐я▐ я─п╣п╥я┐п╩я▄я┌п╟я┌ п╡ -<i>п╨п╬п╫_я└п╟п╧п╩</i>. п∙я│п╩п╦ п╥п╟п╢п╟п╫я▀ п╪п╟п╨я│п╦п╪п╟п╩я▄п╫п╟я▐ п╡я▀я│п╬я┌п╟ п╦ я┬п╦я─п╦п╫п╟, п╠п╬п╩я▄я┬п╦п╣ -п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╠я┐п╢я┐я┌ я┐п╪п╣п╫я▄я┬п╣п╫я▀.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td> -<td><i>п╨п╬п╫_я└п╟п╧п╩</i> п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td> -<td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 - п╦п╫п╟я┤п╣.</td></tr> -</table> - - -<p><code><b>copy</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td><td><i>п╦я│я┘_я└п╟п╧п╩</i> <i>п╨п╬п╫_я└п╟п╧п╩</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п п╬п©п╦я─я┐п╣я┌ я└п╟п╧п╩ <i>п╦я│я┘_я└п╟п╧п╩</i> п╡ я└п╟п╧п╩ -<i>п╨п╬п╫_я└п╟п╧п╩</i> (п©я┐я┌я▄ <i>п╦я│я┘_я└п╟п╧п╩</i> п╬п©я─п╣п╢п╣п╩я▐п╣я┌я│я▐ п╬я┌п╫п╬я│п╦я┌п╣п╩я▄п╫п╬ -п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ п©п╟я─п╟п╪п╣я┌я─п╟ "resource_base").</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td><i>п╨п╬п╫_я└п╟п╧п╩</i> п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, -п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 - -п╦п╫п╟я┤п╣.</td></tr> -</table> - -<p><code><b>write</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td><td><i>п╦п╪я▐_я└п╟п╧п╩п╟</i></td></tr> - -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п≈п╟п©п╦я│я▀п╡п╟п╣я┌ <i>п╢п╟п╫п╫я▀п╣</i> п╡ я└п╟п╧п╩ -<i>п╦я│я┘_я└п╟п╧п╩</i>.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td><i>п╨п╬п╫_я└п╟п╧п╩</i> п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, -п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 - -п╦п╫п╟я┤п╣.</td></tr> -</table> - -<p><code><b>read</b></code></p> - -<table> -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╦п╪я▐_я└п╟п╧п╩п╟</i></td></tr> -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п╖п╦я┌п╟п╣я┌ я└п╟п╧п╩ <i>п╦п╪я▐_я└п╟п╧п╩п╟</i>.</td></tr> -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п©я─п╬я┤п╦я┌п╟п╫п╫я▀п╣ п╢п╟п╫п╫я▀п╣ п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, - п©я┐я│я┌п╟я▐ я│я┌я─п╬п╨п╟ - п╦п╫п╟я┤п╣.</td></tr> -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>1 п©я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦, 0 - -п╦п╫п╟я┤п╣.</td></tr> -</table> - -<p><code><b>include</b></code></p> - -<table> -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╦п╪я▐_я└п╟п╧п╩п╟</i></td></tr> -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п╡п╨п╩я▌я┤п╟п╣я┌ я┬п╟п╠п╩п╬п╫ п╦п╥ я└п╟п╧п╩п╟ -<i>п╦п╪я▐_я└п╟п╧п╩п╟</i>.</td></tr> -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>я─п╣п╥я┐п╩я▄я┌п╟я┌ п╬п╠я─п╟п╠п╬я┌п╨п╦ я┬п╟п╠п╩п╬п╫п╟.</td></tr> -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ -я┬п╟п╠п╩п╬п╫п╟.</td></tr> -</table> - -<p><code><b>!</b></code></p> - -<table> -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr> - -<tr><td>п■п╣п╧я│я┌п╡п╦п╣:</td><td>п╫п╣я┌.</td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п╫п╣я┌.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td>п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘.</td></tr> -</table> - -<p><code><b>replace</b></code></p> - -<table> -<tr><td>п░я─пЁя┐п╪п╣п╫я┌я▀:</td><td><i>я│я┌я─1</i> <i>я│я┌я─2</i></td></tr> - -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п╢п╟п╫п╫я▀п╣, я│ п╥п╟п╪п╣п╫п╣п╫п╫я▀п╪п╦ п╡я┘п╬п╤п╢п╣п╫п╦я▐п╪п╦ п©п╬п╢я│я┌я─п╬п╨п╦ -<i>я│я┌я─1</i> п╫п╟ <i>я│я┌я─2</i>.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td> п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘.</td></tr> -</table> - -<p><code><b>xml_escape</b></code></p> - -<table> -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr> -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>я┌п╣п╨я│я┌ <i>п╢п╟п╫п╫я▀п╣</i>, п╡ п╨п╬я┌п╬я─п╬п╪ я│п╦п╪п╡п╬п╩я▀ -'&', '<', '>', '`', '\' п╥п╟п╪п╣п╫п╣п╫я▀ п╫п╟ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╦п╣ я│я┐я┴п╫п╬я│я┌п╦ -XML.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td> п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘.</td></tr> -</table> - -<p><code><b>xml_cdata</b></code></p> - -<table> -<tr><td>п╒п╣п╨я│я┌:</td><td><i>п╢п╟п╫п╫я▀п╣</i></td></tr> - -<tr><td>п═п╣п╥я┐п╩я▄я┌п╟я┌:</td><td>п╢п╟п╫п╫я▀п╣ п╡ п╡п╦п╢п╣ п╠п╩п╬п╨п╟ XML CDATA.</td></tr> - -<tr><td>п п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟:</td><td> п╨п╬п╢ п╡п╬п╥п╡я─п╟я┌п╟, п©п╬п╩я┐я┤п╣п╫п╫я▀п╧ п©я─п╦ п╬п╠я─п╟п╠п╬я┌п╨п╣ -я┌п╣п╨я│я┌п╟ п╢п╟п╫п╫я▀я┘. </td></tr> -</table> - -<p> -п°п╟п╨я─п╬п©я─п╬я├п╣я│я│п╬я─ TEMA я─п╟я│я┬п╦я─я▐п╣п╪: п╡п╬п╥п╪п╬п╤п╫п╬ п╢п╬п╠п╟п╡п╩п╣п╫п╦п╣ п╡ я│п╦я│я┌п╣п╪я┐ п╫п╬п╡я▀я┘ -я└я┐п╫п╨я├п╦п╧, я─п╣п╟п╩п╦п╥п╬п╡п╟п╫п╫я▀я┘ п╡ п╡п╦п╢п╣ п╨п╩п╟я│я│п╬п╡ п╫п╟ я▐п╥я▀п╨п╣ Java. -</p> - -<h2>п≈п╟п©я┐я│п╨</h2> - -<p>java -jar tema.jar [<i>п╬п©я├п╦п╦</i>] -</p><p> -п·п©я├п╦п╦: -</p> -<table> -<tr><td>-d[emo]</td><td>п■п╣п╪п╬п╫я│я┌я─п╟я├п╦п╬п╫п╫я▀п╧ я─п╣п╤п╦п╪</td></tr> -<tr><td>-v[ersion]</td><td>п▓я▀п╡п╬п╢ п╡п╣я─я│п╦п╦</td></tr> -<tr><td>-h[help] -u[sage]</td><td>п▓я▀п╡п╬п╢ я│п©я─п╟п╡п╨п╦</td></tr> -</table> - -<p> -п÷я─п╦ п╥п╟п©я┐я│п╨п╣ я┤п╦я┌п╟п╣я┌я│я▐ я└п╟п╧п╩ "tema.properties" п╦п╥ я┌п╣п╨я┐я┴п╣пЁп╬ п╨п╟я┌п╟п╩п╬пЁп╟.<br /> -п÷я─п╦п╪п╣я─ я└п╟п╧п╩п╟ "tema.properties": -</p> - -<pre> -# п²п╟я│я┌я─п╬п╧п╨п╟ п╦я│я┌п╬я┤п╫п╦п╨п╟ п╢п╟п╫п╫я▀я┘ -# resource : jdbc:odbc:database -# driver : sun.jdbc.odbc.JdbcOdbcDriver - -# п▒п╟п╥п╬п╡я▀п╧ п╨п╟я┌п╟п╩п╬пЁ я─п╣я│я┐я─я│п╬п╡ -# resource_base : . - -# п╗п╟п╠п╩п╬п╫, я│ п╨п╬я┌п╬я─п╬пЁп╬ п╫п╟я┤п╦п╫п╟п╣я┌я│я▐ п╬п╠я─п╟п╠п╬я┌п╨п╟ -main_template : main.template - -# п п╬п╢п╦я─п╬п╡п╨п╦ я└п╟п╧п╩п╬п╡ -# input_encoding : UTF-8 -# output_encoding : UTF-8 - -# п я█я┬п╦я─п╬п╡п╟п╫п╦п╣ я┬п╟п╠п╩п╬п╫п╬п╡ -# cache_read : true - -# п▓я▀п╡п╬п╢ я─п╣п╥я┐п╩я▄я┌п╟я┌п╟ я─п╟п╥п╠п╬я─п╟ я┬п╟п╠п╩п╬п╫п╟ main.template п╡ stderr -# output : stderr - -# п▓я▀п╡п╬п╢ я│п╬п╬п╠я┴п╣п╫п╦п╧ п╬п╠ п╬я┬п╦п╠п╨п╟я┘ п╡ я└п╟п╧п╩ -# log : dbreader.log -</pre> - -</body> -</html>
--- a/misc/util/header Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -/* - * Copyright 2006-2009 Mikhail Kryshen - * - * This file is part of Tema. - * - * Tema is free software: you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * Tema is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the - * GNU Lesser General Public License along with Tema. - * If not, see <http://www.gnu.org/licenses/>. - */
--- a/misc/util/header.gpl Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2006, 2007, 2008 Mikhail Kryshen - * - * This file is part of Tema. - * - * Tema is free software: you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Tema is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Tema. If not, see <http://www.gnu.org/licenses/>. - * - * $Id: header.gpl,v 1.1 2008/02/16 16:56:34 mikhail Exp $ - */
--- a/misc/util/update_headers.pl Fri May 15 03:07:16 2009 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -#!/usr/bin/perl - -use File::Find; - -undef $/; - -my $src = "../../src"; -my $header_file = "header"; - -open (FILE, "$header_file"); -my $header = <FILE>; -close(FILE); - -find (\&update_header, $src); - -sub update_header -{ - my $code; - - if ( $File::Find::name !~ /^.*\.java$/ ) - { - return; - } - - print $File::Find::name."\n"; - open(FILE, "$_") or die "error opening file"; - - $code = <FILE>; - $code =~ s|(^[[:space:]]*/\*.*?\*/[[:space:]]*?\n\|^)|$header|s; - - close(FILE); - - open(FILE, ">$_") or die "error opening file"; - print FILE $code; - close(FILE); -}