Russian Qt Forum
Ноябрь 24, 2024, 06:42
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
поиск в тексте и замена
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: поиск в тексте и замена (Прочитано 7923 раз)
noname.pl
Гость
поиск в тексте и замена
«
:
Декабрь 22, 2006, 14:03 »
задача: есть текст, в котором определенные образом _помечены_ слова. их нужно заменить на предложения. как это можно сделать быстро? в какую сторону смотреть? есть ли стандартный алгоритм? спасибо.
добавлено спустя 15 минут:
p.s.: искал в delphiworld, но в нем описаны лишь платформозависимые способы (нужно подключать windows.h) ... можно ли как-то оргинизовать поиск и замену средствами qt ?
Записан
Вудруф
Гость
поиск в тексте и замена
«
Ответ #1 :
Декабрь 22, 2006, 14:35 »
Если тебе не надо regexp, а пометка - стандартна, то можно find & replace хоть для std::string, хоть для QString.
Записан
zabivator
Гость
поиск в тексте и замена
«
Ответ #2 :
Декабрь 22, 2006, 14:39 »
Look
std::find std::string::find, std::string::finf_first, ....
std::string::replace
Записан
Вудруф
Гость
поиск в тексте и замена
«
Ответ #3 :
Декабрь 22, 2006, 14:41 »
Как вариант, boost::regex для std::string.
Записан
noname.pl
Гость
поиск в тексте и замена
«
Ответ #4 :
Декабрь 22, 2006, 14:58 »
текст нужно будет брать из файла. возможно размер файла будет в несколько мегабайт. файл текстовый.
- стоит ли проводить поиск по самому файлу или скидывать его текст в буфер?
- поместиться ли в string такой объем текста?
- замену придется делать следующим образом. слова ищутся в исходном файле, а конечный результат их замены на предложения выводится во второй файл. не могу сообразить, как наилучшим образом организовать этот процесс? то ли через буфер текстовый, то ли через работу напрямую с ихсодным файлом ...
p.s.: boost::regexp наверное мне не нужен, так как я не знаю что это
Записан
Вудруф
Гость
поиск в тексте и замена
«
Ответ #5 :
Декабрь 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
Гость
поиск в тексте и замена
«
Ответ #6 :
Декабрь 22, 2006, 21:01 »
1. по файлу нужно пробежаться действительно всего 1 раз.
2. можно считывать файл целиком.
3. как прикрутить boost ?
Записан
crocus
Гость
поиск в тексте и замена
«
Ответ #7 :
Декабрь 23, 2006, 07:00 »
Загоняешь все в QString и делаешь replace, не знаю как на мегабайтах, но до 100 кб работает моментально.
Записан
zabivator
Гость
поиск в тексте и замена
«
Ответ #8 :
Декабрь 23, 2006, 13:08 »
http://boost.org/
-> download
Записан
noname.pl
Гость
поиск в тексте и замена
«
Ответ #9 :
Декабрь 23, 2006, 15:21 »
zabivator, гуглом пользоваться умею =)
Записан
zabivator
Гость
поиск в тексте и замена
«
Ответ #10 :
Декабрь 23, 2006, 15:39 »
Это на тему "как прикрутить"
После скачивания скомпилируй bjam и собери библиотеку
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
поиск в тексте и замена
«
Ответ #11 :
Декабрь 24, 2006, 00:02 »
ну читать строками и менять...
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Вячеслав
Гость
поиск в тексте и замена
«
Ответ #12 :
Декабрь 24, 2006, 20:38 »
А не проще QProcess с awk или sed'ом прикрутить ? Или замена не тривиальная ?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...