Контекстная замена символов осуществляется путем поиска всех контекстов последовательно, начиная с первого символа строки, затем второго, третьего и т.д. пока контекст не будет найден. После замены контекста поиск контекстов в строке продолжается с символа, стоящего во входной строке после найденного контекста. Поиск контекстов по строке прекращается при просмотре всех символов строки. Область поиска и размещение результата редактирования определяются заданием параметров ввода / вывода для редактирования.
Контексты берутся из заданной на экране таблицы контекстов, которую можно
набрать вручную, загрузить из файла запроса или локальной базы данных.
Таблица контекстов включает в себя пары: "
контекст поиска
" - "
контекст замены
", которые могут содержать
не только обычные символы, но и спецсимволы, интерпретируемые как
контекстные операции. Примеры запросов на контекстную замену:
Контекст поиска: Контекст замены: Комментарий: 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 исключение конечного пробела (для двоичного представления). |
Текущая страница также может являться макросом сценария , описывающего сеанс редактирования. Специально разработанный аппарат контекстных групп позволяет задавать вычисляемые контексты замены с указанием места и режима замены. Задание режима "Сводный файл строк редакции" обеспечивает создание нового файла, состоящего как из отдельных строк редактирования, так и из целых блоков редактирования , определяемых своими граничными контекстами поиска/замены.
Применение специальных средств для контекстного редактирования позволяет существенно расширить возможности редактора, создавать полноценные программы-сценарии для выполнения сложных преобразований текстовой информации. На базе спецсредств фактически была создана уникальная методика контекстно-табличного редактирования.
Применение спецсредств иллюстрируется тремя приложеними: