Вопрос № 40704: Недавно задавал вопрос, появилось время дошел до реализации и появилась небольшая проблема.
Вообщем необходимо открывать файл, читать его построчно, если попалась строка для поиска, заменить ее другой строкой. Проблема такого рода, что не получае...
Вопрос № 40.704
Недавно задавал вопрос, появилось время дошел до реализации и появилась небольшая проблема.
Вообщем необходимо открывать файл, читать его построчно, если попалась строка для поиска, заменить ее другой строкой. Проблема такого рода, что не получается заменить строку. Вообще как это лучше сделать, как учили на 1-ых курсах, писать все в новый файл с изменениями, старый затирать, новый переименовать или все таки, как мне больше нравится. А мне болоше нравится такой вариант, что я прочитал строку, если заменял что-нибудь, то и строку в соотвествующем файле изменить. Как это реализовать на Perl ? Есть ли
варианты кроме seek ?
В приложение добавил прогу. В ней тоже проблемка есть, т.е. не в ней а в функции ReplaceInFile. Если не использовать замену s/str/str, а просто писать /str/, то perl говорит Ok, если же использовать замену он ругается Replacment not terminated. Я не понимаю почему.
Приложение:
Отправлен: 19.04.2006, 08:44
Вопрос задал: RedDevil (статус: 9-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Thomas Arden
Здравствуйте, RedDevil!
Правильно интерпретатор говорит, что не завершена. Конструкция замены должна заканчиваться слэшем (в данном случае), т.е., s/(s|A)$find_str(s|)/$rep_str/. у вас нет последнего слэша.
Ответ отправил: Thomas Arden (статус: 1-ый класс)
Ответ отправлен: 20.04.2006, 11:05 Оценка за ответ: 5 Комментарий оценки: Спасиб, а регулярное выражение по памяти составлял, глянул в одну и эл. книг, а там была замена без последнего /. А книге сканированная опечаток там туева куча.
Все теперь сделал, вторая полезная прога на perl-e теперь работает :)