Название: поиск в тексте и замена Отправлено: noname.pl от Декабрь 22, 2006, 14:03 задача: есть текст, в котором определенные образом _помечены_ слова. их нужно заменить на предложения. как это можно сделать быстро? в какую сторону смотреть? есть ли стандартный алгоритм? спасибо.
добавлено спустя 15 минут: p.s.: искал в delphiworld, но в нем описаны лишь платформозависимые способы (нужно подключать windows.h) ... можно ли как-то оргинизовать поиск и замену средствами qt ? Название: поиск в тексте и замена Отправлено: Вудруф от Декабрь 22, 2006, 14:35 Если тебе не надо regexp, а пометка - стандартна, то можно find & replace хоть для std::string, хоть для QString.
Название: поиск в тексте и замена Отправлено: zabivator от Декабрь 22, 2006, 14:39 Look
std::find std::string::find, std::string::finf_first, .... std::string::replace Название: поиск в тексте и замена Отправлено: Вудруф от Декабрь 22, 2006, 14:41 Как вариант, boost::regex для std::string.
Название: поиск в тексте и замена Отправлено: noname.pl от Декабрь 22, 2006, 14:58 текст нужно будет брать из файла. возможно размер файла будет в несколько мегабайт. файл текстовый.
- стоит ли проводить поиск по самому файлу или скидывать его текст в буфер? - поместиться ли в string такой объем текста? - замену придется делать следующим образом. слова ищутся в исходном файле, а конечный результат их замены на предложения выводится во второй файл. не могу сообразить, как наилучшим образом организовать этот процесс? то ли через буфер текстовый, то ли через работу напрямую с ихсодным файлом ... p.s.: boost::regexp наверное мне не нужен, так как я не знаю что это ;) Название: поиск в тексте и замена Отправлено: Вудруф от Декабрь 22, 2006, 20:41 1. Пожалуй, стоит, если тебе всего один раз надо по файлу пробежать. Тут от задачи зависит.
2. Да, поместится. Но можно считывать поблочно, можно построчно. Опять же от задачи зависит. Цитировать size_type string::max_size () const Returns the maximum number of characters a string could contain. 3. В зависимости от 1 и 2. P.S. boost.org Название: поиск в тексте и замена Отправлено: noname.pl от Декабрь 22, 2006, 21:01 1. по файлу нужно пробежаться действительно всего 1 раз.
2. можно считывать файл целиком. 3. как прикрутить boost ? Название: поиск в тексте и замена Отправлено: crocus от Декабрь 23, 2006, 07:00 Загоняешь все в QString и делаешь replace, не знаю как на мегабайтах, но до 100 кб работает моментально.
Название: поиск в тексте и замена Отправлено: zabivator от Декабрь 23, 2006, 13:08 http://boost.org/ -> download
Название: поиск в тексте и замена Отправлено: noname.pl от Декабрь 23, 2006, 15:21 zabivator, гуглом пользоваться умею =)
Название: поиск в тексте и замена Отправлено: zabivator от Декабрь 23, 2006, 15:39 Это на тему "как прикрутить"
После скачивания скомпилируй bjam и собери библиотеку Название: поиск в тексте и замена Отправлено: Racheengel от Декабрь 24, 2006, 00:02 ну читать строками и менять...
Название: поиск в тексте и замена Отправлено: Вячеслав от Декабрь 24, 2006, 20:38 А не проще QProcess с awk или sed'ом прикрутить ? Или замена не тривиальная ?
|