РВБ лого Последнее обновление: 31.01.2009
Русская виртуальная библиотека

Графический интерфейс утилиты xMarkup. Руководство пользователя

Содержание

  • 7.1 Тестовая компиляция
  • 7.2 Тестовый прогон
  • 7.3 Обработка в режиме отладки
  • 1. Общая информация

    Утилита xMarkup предназначена для выполнения процедур строковых преобразований в множестве текстовых файлов (смотри Руководство пользователя). Ядро утилиты реализовано в виде консольного приложения для Windows 9x/NT/2K/XP/2003 и написано на языке Icon.

    Так как использование командной строки имеет очевидные неудобства, впоследствие был разработан графический интерфейс, который максимально упрощает и делает наглядным весь процесс работы с утилитой. Кроме того в графический интерфейс были добавлены многие другие полезные функции. Графический интерфейс разработан в среде Delphi 7.

    Интегрирование с внешним текстовым редактором Notepad++ обеспечивает пользователя удобной средой разработки (IDE), которая позволяет редактировать файл правил обработки с подсветкой синтаксиса и использованием опции авто-завершения набираемого текста. При желании вместо Notepad++ можно использовать любой другой аналогичный редактор. Например, MyDevStudio или WinPad XP.

    Реализована интеграция с внешней программой сравнения файлов WinMerge, которая позволяет визуально анализировать изменения, сделанные в результате обработки исходных файлов. При желании вместо WinMerge можно использовать любую другую аналогичную программу. Например, KDiff3.

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

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

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

    1.1 Благодарности

    Разработка графического интерфейса осуществлялось в рамках проекта МНТЦ #3361р. Участие в этом проекте оказалось возможным благодаря поддержке Владимира Литвинова (litvinov@snezhinsk.ru), технического редактора Русской Виртуальной Библиотеки.

    В составе графического интерфейса использована компонента TmFileScan, разработанная Mats Asplund, MASoft. С помощью этой прекрасной компоненты реализован режим поиска исходных файлов.

    1.2 История изменений

    Версия 2.0, апрель 2007

    Выпущена начальная версия графического интерфейса утилиты. Для согласования с номером версии консольного ядра ей присвоен номер 2.0

    Версия 2.0.1, июль 2007

    Исключена операция сохранения файла параметров при включенной опции автосохранения, если он на самом деле не изменялся.

    Версия 2.1.0, октябрь 2007

    Добавлена возможность задания оформления консольных и рабочих окон на вкладке Установки.

    Версия 2.1.1, апрель 2008

    Изменения, связанные с расширением функциональности консольного ядра утилиты:

    Версия 2.1.2, май 2008

    Изменения, связанные с фиксацией ошибок в консольном ядре.

    Версия 2.1.3, сентябрь 2008

    Простая алфавитная сортировка списка обрабатываемых файлов заменена сортировкой с учетом иерархии путей. В верх списка обрабатываемых файлов добавлена панель, нажатие на которую изменяет порядок сортировки.

    Версия 2.1.4, январь 2009

    Восстановлен режим сохранения выходных файлов с добавлением к их имени префикса "xm$". На закладке "Помощь" добавлена ссылка к домашней страничке загрузки программы.

    2. Как начать?

    Процесс работы с графическим интерфейсом утилиты xMarkup заключается в следующей последовательности действий:

    При этом пользователь может всегда быть спокойным насчет оригиналов исходных файлов - утилита НИКОГДА их не изменяет! Результирующие файлы копируются в заданную выходную папку или создаются рядом с оригиналами, но с префиксом "xm$" в имени. По умолчанию установлен режим, в котором выходные файлы вообще не создаются.

    3. Описание интерфейса пользователя

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

    4. Функциональные страницы приложения

    4.1 Исходные файлы

    При старте приложения эта страница открывается первой. На данной странице формируется список исходных файлов, которые требуется обработать.

    page Source Files

    Страница содержит следующие компоненты:

    1. окно комби-списка, в котором задается требуемая маска поиска файлов;
    2. флажок, задающий рекурсивный поиск файлов во всех вложенных папках;
    3. окно, содержащее список исходных файлов для обработки;
    4. панель для смены направления сортировки текущего списка файлов;
    5. нижнее черное окно, в котором отображается консольный вывод утилиты (вертикальный размер этого окна может регулироваться пользователем);
    6. кнопку [Поиск] задания поиска файлов в выбранной папке по текущей маске;
    7. кнопку [Добавить] для ручного добавления файлов в список;
    8. кнопку [Удалить] для удаления из списка выделенных файлов (сами файлы при этом не уничтожаются);
    9. кнопку [Открыть] для открытия выделенного файла списка;
    10. кнопку [Править] для редактирования выделенного файла списка во внешнем текстовом редакторе;
    11. кнопку [Загрузить] для загрузки списка из ранее сохраненного файла;
    12. кнопку [Сохранить] для сохранения текущего списка в файл;
    13. кнопку [Очистить] для очистки текущего списка файлов;
    14. кнопку [Start] для старта обработки текущего списка файлов.

    Добавление файлов к списку может осуществляться многократно, при этом по умолчанию список автоматически сортируется. Добавление файлов к списку в режиме поиска может быть прервано нажатием клавиши [Esc] или вводом Ctrl-C.

    Навигация по списку обрабатываемых файлов и выделение его элементов делается стандартным для Windows образом - с помощью мыши или клавиш. Двойной щелчок мыши по выделенному файлу или нажатие клавиши [Enter] вызывает его открытие. Нажатием клавиши [Del] выделенный файл(ы) удаляются из списка. При нажатии правой кнопки мыши активизируется контекстное меню:

    Context Menu

    Пункты контекстного меню "Сравнить", "Открыть Результат", "Править Результат" активны только при условии, если при обработке исходного файла был создан выходной файл (результат).

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

    xMarkup Processing

    Процесс обработки может быть всегда прерван нажатием на кнопку [Stop] или вводом Ctrl-C.

    4.2 Установки

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

    page Preferences

    Страница содержит следующие компоненты:

    1. поле [Рабочая Папка] для задания папки, которая назначается текущей при открытии рабочих и пользовательских файлов на чтение/запись в процессе обработки (не путать с выходной папкой, куда сохраняются результаты обработки!);
    2. Кнопка [...], позволяющая выбрать или создать требуемую рабочую папку;
    3. кнопку [Explore] для открытия рабочей папки в окне Проводника Windows;
    4. список [Язык Интерфейса] для задания языка пользовательского интерфейса (русский или английский);
    5. поле [Внешний Текстовый Редактор] для задания пути к внешнему текстовому редактору (по умолчанию Notepad++ или, если он не установлен в системе, то стандартный блокнот);
    6. поле [Внешняя Программа Сравнения Файлов] для задания пути к программе сравнения текстовых файлов (по умолчанию WinMerge);
    7. флажок для задания автоматического сохранения файла правил обработки (если он изменялся) перед началом обработки;
    8. флажок для задания автоматической сортировки списка обрабатываемых файлов при добавлении в него новых файлов;
    9. флажок для задания автоматического сохранения всех параметров текущей сессии;
    10. кнопки выбора шрифта и цвета фона рабочих окон;
    11. кнопки выбора шрифта и цвета фона консольных окон;
    12. поле [Конфигурация] для задания имени файла конфигурации. Кнопка [...] справа позволяет загрузить требуемую конфигурацию;
    13. кнопку [Сохранить] для сохранения текущих настроек в заданный конфигурационный файл.

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

    procedure initialize
      in := open("infile.txt", "r")
      out := open("outfile.txt", "w")
      ...
      t := get_content("infile.txt")
    end
    

    по умолчанию читаются/создаются по пути, заданному рабочей папкой. Естественно, если явно задать полные пути к файлам, то они могут размещаться в любом месте. Сказанное также справедливо для макропределения @read(file).

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

    4.3 Результаты

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

    page Output

    Страница содержит следующие компоненты.

      Опции экранного вывода:

    1. флажок [Сохранить в Файл], задающий копирование экранного вывода в текстовый файл;
    2. текстовое поле для задания имени файла экранного вывода (по умолчанию этот файл создается в рабочей папке);
    3. кнопку [...] для выбора или создания файла экранного вывода;
    4. кнопку [Править] для просмотра файла экранного вывода в окне внешнего редактора;
    5. флажок [Режим Отладки], задающий режим отладочного вывода утилиты;
    6. флажок [Режим без Статистики], задающий подавление вывода списка обработанных файлов и итоговой статистики на экран;
    7. поле [Размер Экранного Буфера] для задания размера буфера окна экранного вывода в строках.

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

    1. группа переключателей, задающая режим сохранения результирующих файлов:
    2. - создавать с сохранением исходной структуры папок (сохраняется иерархия папок исходных файлов);
      - сохранять в плоскую выходную папку (иерархия папок исходных файлов не сохраняется);
      - сохранять с префиксом xm$ в имени в исходную папку;
      - перенаправить вывод на экран;
      - не сохранять.
    3. текстовое поле [Выходной Путь], в котором задается путь к выходной папке;
    4. кнопка [...] для выбора или создания требуемой выходной папки;
    5. кнопка [Explore] для открытия выходной папки в Проводнике Windows.

    4.4 Правила Обработки

    На этой странице задаются правила обработки исходных файлов.

    page Markup Rules

    Страница содержит следующие компоненты:

    1. поле [Файл Параметров], в котором задается имя файла правил обработки (скрипта или файла параметров);
    2. кнопку [...] для загрузки ранее сохраненного файла правил обработки;
    3. кнопку [Править] для редактирования текущих правил обработки в окне внешнего редактора;
    4. кнопку [Сохр.] для сохранения текущих правил обработки в заданный файл;
    5. кнопку [Сохр. Как] для сохранения текущих правил обработки в файл с другим именем;
    6. кнопку [Создать] для создания новых правил обработки;
    7. окно [Заголовок], в котором задаются комментарии к правилам обработки (строки должны начинаться символом решетки или точки с запятой). Вертикальный размер этого окна может регулироваться пользователем;
    8. флажок синхронизации обработки списков начальных и конечных маркеров;
    9. флажок синхронизации обработки списков начальных маркеров и шаблонов преобразований;
    10. таблицу для задания списков начальных и конечных маркеров и шаблонов преобразований;
    11. поле задания шаблона пост-преобразования.

    Так редактирование списков маркеров и шаблонов замен в табличной форме может быть неудобным, рекомендуется для этого использовать внешний редактор (см. пункт 5).

    4.5 Опции Обработки

    На этой странице задаются различные опции обработки исходных файлов. Назначение данных опций детально описано в руководстве по утилите xMarkup.

    page Markup Options

    Страница содержит следующие компоненты.

      Параметры внутренних счетчиков утилиты xMarkup:

    1. поле [Нач.Значения] для задания начальных значений счетчиков;
    2. поле [Инкр.Значения] для задания приращений счетчиков;
    3. флажок [Автоинкрементация], задающий автоинкрементацию счетчиков;
    4. комби-список, с помощью которого задается тип счетчиков (относительный или абсолютный).

      Дополнительные опции обработки:

    1. флажок [Добавлять символ newline...], задающий добавление символа новой строки (\n) в конец каждой считываемой строки исходного файла;
    2. флажок [Нечувствительный к регистру поиск], задающий нечувствительный к регистру поиск стартовых и стоповых маркеров;
    3. флажок [Пропускать HTML теги], задающий пропуск при обработке тела HTML тегов;
    4. поле, задающую минимальную длину искомых текстовых элементов (между начальным и конечным маркерами);
    5. список [TagExceptions], в котором задаются имена парных тегов, содержимое которых необходимо исключить из обработки.

    4.6 Макросы

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

    page Macros

    Страница содержит следующие компоненты:

    1. Окно редактирования процедурных макросов;
    2. Нижнее окно отладочного вывода (вертикальный размер этого окна может изменяться);
    3. Кнопку [Тест.Компил.] для проверки валидности синстаксиса заданных макросов с помощью Icon-компилятора;
    4. Кнопку [Тест.Прогон] для проверки валидности заданных макросов в режиме эмуляции их выполнения.
    Примечание: если в теле макро-процедуры содержится директива @include включения текста из внешнего файла, то открыть этот файл на редактирование можно двойным щелчком мыши по строке директивы.

    4.7 Помощь

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

    page Macros

    5. Использование внешнего редактора

    Утилита xMarkup поддерживает интеграцию с любым внешним редактором, который может использоваться для быстрого просмотра или редактирования обрабатываемых файлов и правил обработки. Если в вашей системе установлен редактор Notepad++, то он используется по умолчанию как внешний редактор. Назначение другого внешнего редактора задается на странице Установки.

    При загрузке файла правил обработки (тип .par или .xm) в окно редактора Notepad++ автоматически осуществляется подсветка синтаксиса, например:

    page Notepad++

    При нажатиии комбинации клавиш Ctrl+Space активизируется функция авто-завершения ввода, с помощью которой можно выбрать требуемую синтаксическую конструкцию файла правил - имя макроопределения или функции. При нажатии Ctrl+Space в процессе ввода строки осуществляется автоматический поиск имени конструкции, начинающегося введенной строкой.

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

    page Reload

    6. Использование внешней программы сравнения файлов

    Утилита xMarkup поддерживает интеграцию с внешней программой сравнения файлов, с помощью которой можно визуально сравнивать исходный файл с результатом его обработки. Если в вашей системе установлена программа WinMerge, то она используется по умолчанию как внешняя программа сравнения файлов. Назначение другой внешней программы сравнения файлов задается на странице Установки. При этом нужно иметь ввиду, чтобы данная программа поддерживала следующий синтаксис командной строки запуска:

    имя-программы файл-1 файл-2

    Для выполнения операции сравнения необходимо после завершения обработки выбрать требуемый исходный файл в списке, нажать правую кнопку мыши и выполнить команду Сравнить. Сравнение возможно только в том случае, если на странице Результаты был задан какой-либо режим создания выходных файлов.

    7. Отладка процедурных макросов

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

    7.1 Тестовая компиляция

    В этом режиме "вылавливаются" грубые синтаксические ошибки с помощью компиляции заданных макросов стандартным Icon-компилятором. При этом следует помнить, что Icon-компилятор может посчитать валидными многие выражения, которые дадут сбой только во время выполнения. Эта особенность вызвана тем обстоятельством, что Icon не использует жестко типизированных переменных и не проверяет существования вызываемых функций и процедур на этапе компиляции.

    Режим тестовой компиляции задается нажатием кнопки [Тест.Компил.] в окне [Макросы]. Ниже приведен пример выходного листинга компиляции:

    page Test Compile

    В данном случае в шестой строке
    t := tower(@body
    пропущена правая закрывающая скобка из-за чего конструкция "if-then" в следующей строке была также не распознана.

    7.2 Тестовый прогон

    В этом режиме осуществляется проверка выполнения каждого выражения макро-кода с помощью эмуляции Run-time режима. Запуск режима выполняется нажатием кнопки [Тест.Прогон] в окне [Макросы]:

    page Test Run

    В данном случае в строке
    t := tower(@body)
    возникла Icon Run-time ошибка 106, вызванная тем, что строка tower не распознана как имя объявленной процедуры (правильное имя - lower). Описание всех возможных Run-Time ошибок можно найти в приложении G (стр.319) книги Icon Programming Language.

    7.2 Обработка в режиме отладки

    В этом режиме можно проследить по шагам реальный процесс обработки исходных файлов. Чтобы попасть в режим отладки нужно выбрать опцию [Режим Отладки] в окне [Результаты] и запустить обработку:

    page Debug Processing

    После каждого шага обработки (т.е. поиска и трансформации очередного элемента текста) утилита делает останов, ожидая ввода от пользователя. В консольном окне требуется ввести номер варианта ответа (1-3) и нажать возврат каретки:

    Завершить отладку также можно нажатием на кнопку [Stop] или вводом управляющего символа Ctrl-C.

    © Сергей Логичев, 1999-2008
    РВБ