Необходимо удалить строки таблицы, относящиеся к версии Фортран, из первой таблицы HTML-документов для описания библиотечных программ, которая имеет вид, например, для п/п AMOOR со 2-й по 12-ю строку:
<table cellpadding="0" cellspacing="0" width="99%"> <tr> <td style="color: #AA00AA" style="text-align: left" width="48%"> Текст подпрограммы и версий ( Фортран )<br> <a href="../am_f/am00r.zip"> am00r.zip </a>, <a href="../am_f/am00d.zip"> am00d.zip </a>, <a href="../am_f/am00c.zip"> am00c.zip </a> <td style="color: #AA00AA" style="text-align: left" width="52%"> Тексты тестовых примеров ( Фортран )<br> <a href="../tam/tam00r.zip"> tam00r.zip </a>, <a href="../tam/tam00d.zip"> tam00d.zip </a>, <a href="../tam/tam00c.zip"> tam00c.zip </a> <tr> <td style="color: #AA00AA" style="text-align: left" width="48%"> Текст подпрограммы и версий ( Си )<br> <a href="../am_c/am00r_c.zip"> am00r_c.zip </a>, <a href="../am_c/am00d_c.zip"> am00d_c.zip </a>, <a href="../am_c/am00c_c.zip"> am00c_c.zip </a> <td style="color: #AA00AA" style="text-align: left" width="52%"> Тексты тестовых примеров ( Си )<br> <a href="../tam_c/tam00r_c.zip"> tam00r_c.zip </a>, <a href="../tam_c/tam00d_c.zip"> tam00d_c.zip </a>, <a href="../tam_c/tam00c_c.zip"> tam00c_c.zip </a> </table>
Контекст поиска: | Контекст замены: |
---|---|
============================================================== | |
|3[block=1]|%%<table | |
Контроль появления блока в первый раз (начальный тег таблицы); | |
|3|{<tr>} | #[BlockEdit(selsp,sysfile1)] |
Блоковая функция BlockEdit сохраняет в файле sysfile1 лексемы с min и max номерами строк блока редактирования {10}, содержащих тег <tr> ; | |
|3|$$</table> | |
Контроль конца блока (конечный тег таблицы); | |
|3|%$ | #[BlockOper(del,{10},0, &1|sysfile1 ..&2|sysfile1 - 1)] |
Блоковая функция BlockOper удаляет из блока редактирования {10} группу строк, относящихся к первому тегу <tr> (со 2-й по 12-ю строку HTML-таблицы); | |
============================================================== |
Документ, описывающий программу, предназначен для просмотра в Интернете и написан с использованием
тегов языка HTML. Он состоит из нескольких разделов, имеющих заголовки, отмеченные тегом <h3>,
и, возможно, отделенного от заголовка несколькими пробелами. Например, документ содержит строки:
. . . . . . . . . . <h3> Использование int zf17r_c(S_fp funcd, real *a, real *b, real *eps, real *root, integer *itmax, integer *ierr) <h3> Параметры . . . . . . . . . . FUNСD - ... // ~ А - ... // ~ В - ... // ~ ЕРS - ... // ~~ RООТ - ... // ~~~ IТМАХ - ... // ~~~~ IЕRR - ... // ~ . . . . . . . . . . <h3> Версии . . . . . . . . . . . . . . . . . . . <h3> Вызываемые программы . . . . . . . . . . . . . . . . . . . . <h3> Пример использования . . . . . . . . . .В разделе "Параметры" символы параметров идентификаторов набраны в верхнем регистре и изначально содержат русские буквы, совпадающие по начертанию с латинскими (они для наглядности выделены строкой-комментария, начинающейся с символов '//'). Необходимо в процессе редактировния заменить русские буквы на соответствующие им латинские, перевести идентификаторы на нижний регистр и удалить строки-комментарии.
Контекст поиска: | Контекст замены: |
---|---|
============================================================== | |
|1|%%{<h3> *Параметры} | |
Контроль начала раздела "Параметры"; | |
|1|{[АВЕКМНОРСТХУA-Z]+[АВЕКМНОРСТХУA-Z0-9]* } | #[BlockEdit(selcn,sysfile1,_{1}..{1}_)] |
Блоковая функция BlockEdit сохраняет в файле sysfile1 лексемы с номером строки блока редактирования, содержащей идентификатор (в качестве допустимых символов идентификатора фигурируют латинские буквы A-Z и совпадающие по начертанию русские АВЕКМНОРСТХУ), и номерами начала _{1} и конца {1}_ диапазона символов идентификатора в строке; | |
|1|{%// ?*} | #[BlockEdit(selln,sysfile2)] |
Блоковая функция BlockEdit сохраняет в файле sysfile2 лексемы с номером строки блока, содержащей комментарий; | |
|1|$${<h3> *Версии} | |
Контроль конца раздела "Параметры" (начало раздела "Версии"); | |
|1|%$ | #[BlockConv({10},0,sysfile1,eneq,dn)] |
Блоковая функция BlockConv переводит символы блока редактирования {10}, указанные в системном файле sysfile1, из русских в латинские и переводит их на нижний регистр; | |
|1|%$ | #[BlockOper(del,{10},0,sysfile2,0,True)] |
Блоковая функция BlockOper удаляет из блока редактирования {10} строки-комментарии, указанные в системном файле sysfile2 и записывает блок в выходной файл; | |
============================================================== |
<h3> Параметры . . . . . . . . . . funcd - ... a - ... b - ... eps - ... root - ... itmax - ... ierr - ... . . . . . . . . . .