Контекстная замена символов осуществляется путем поиска всех контекстов последовательно, начиная с первого символа строки, затем второго, третьего и т.д. пока контекст не будет найден. После замены контекста поиск контекстов в строке продолжается с символа, стоящего во входной строке после найденного контекста. Поиск контекстов по строке прекращается при просмотре всех символов строки. Область поиска и размещение результата редактирования определяются заданием параметров ввода / вывода для редактирования.
Контексты берутся из заданной на экране таблицы контекстов, которую можно
набрать вручную, загрузить из файла запроса или локальной базы данных.
Таблица контекстов включает в себя пары: "
контекст поиска
" - "
контекст замены
", которые могут содержать
не только обычные символы, но и спецсимволы, интерпретируемые как
контекстные операции. Примеры запросов на контекстную замену:
Контекст поиска: Контекст замены: Комментарий:
POISK поиск контекста POISK
(тождественная замена);
s "Строка замены" замена символа на несколько
слов, разделенных пробелами;
@*+i|j $ перенос строки перед символами
*i, *j, **i, **j, ...;
[ab]+c ABC замена символов abc, ababc,
abababc, ...;
{p1}{p2}{p3} #2#3#1 перестановка групп в строке
p1,p2,p3 в p2,p3,p1 ;
{?*} <b>#1</b> обрамление тегами всей строки
<b> ... </b> ;
{?*aa?*}|{?*bb?*} <i>#*</i><br> обрамление тегами строк,
содержащих контексты aa или bb;
{Stroca1} #1\0d\0aStroca2 замена строки Stroca1 на две
Stroca1 и Stroca2 ;
{#0000FF}|{BLUE} @#0000CC замена цветового кода,
заданного разными кодировками;
{%a?b}|{b?a$} "" исключение концевых контекстов с
любым центральным символом;
{%?} <p>#1 добавление тега в начало строки;
{?$} #1</p> добавление тега к концу строки;
\0a \0d\0a замена концов строк (например,
для разделения "слитых" строк);
" "\0d \0d исключение конечного пробела
(для двоичного представления).
|
Текущая страница также может являться макросом сценария , описывающего сеанс редактирования. Специально разработанный аппарат контекстных групп позволяет задавать вычисляемые контексты замены с указанием места и режима замены. Задание режима "Сводный файл строк редакции" обеспечивает создание нового файла, состоящего как из отдельных строк редактирования, так и из целых блоков редактирования , определяемых своими граничными контекстами поиска/замены.
Применение специальных средств для контекстного редактирования позволяет существенно расширить возможности редактора, создавать полноценные программы-сценарии для выполнения сложных преобразований текстовой информации. На базе спецсредств фактически была создана уникальная методика контекстно-табличного редактирования.
Применение спецсредств иллюстрируется тремя приложеними:
|