Разработать программу, которая будет редактировать файл по заданному «рецепту» и сохранять результат в другой файл.
I. «Рецепт» — файл с командами редактирования, по одной на строку:
delete from MM to NN
— удалить строки с номерами MM..NN. Секции from MM
и to NN
могут опускаться, в этом случае подразумевается, что удалять нужно с начала или до конца файла.change from MM to NN with "TEXT"
. Заменить строки с MM до NN на текст TEXT. Текст может быть многострочным. Перевод строки записывается как \n
, символ обратного слеша — как \\
, кавычка — \"
. Секции from MM
и to NN
опциональны (см. описание команды delete
).insert after MM "TEXT"
. Вставить TEXT после строки MM.replace from MM to NN "TEXT" with "TEXT2"
. Заменить в строках от MM до NN текст TEXT на TEXT2. Секции from MM
и to NN
опциональны (см. описание команды delete
).undo
. Отменить действие предыдущей команды. II. Входной файл, к которому будет применяться рецепт.
Применить команды к входному файлу.
Отредактированный входной файл.
Разработать набор тестов, проверяющий корректность исполнения различных команд. Уделить внимание командам с некорректными параметрами (например, где номер строки превышает количество строк в файле). Команды должны выполняться, но в границах реально поданного на вход файла. Например, delete from 1 to 1000
должна удалить все строки в файле из двух строк, не приводя к возникновению ошибки.