Название: Чтение Q-файла и сравнение строки Отправлено: robix от Июнь 21, 2013, 14:35 Здравствуйте.
Имеется файл QFile file("C://log.txt") Он уже открыт, как file.open(QIODevice::Append | QIODevice::Text); И в него периодически записываются строки из нескольких чисел одинаковой длины, с переходном на новую строку, например файл выглядит так: 3434534 4254667 0054644 Иногда, например, нужно в процессе проверить весь файл на то, нет ли среди уже записанных строк некой строки. Пусть это будет QString check("5550000") ВОПРОС: :) Не могли бы вы написать функцию, которая возьмет этот, уже открытый файл, пробежится по нему, и проверит на совпадение со строкой check все его строки? Если можно сразу открыть файл, чтобы и записывать в конец и читать, то подскажите как его открывать? Название: Re: Чтение Q-файла и сравнение строки Отправлено: Bepec от Июнь 21, 2013, 14:46 http://qt-project.org/doc/qt-4.7/qfile.html
Читать с раздела "Using Streams to Read Files" Название: Re: Чтение Q-файла и сравнение строки Отправлено: lit-uriy от Июнь 22, 2013, 13:53 Сделай два объекта QFile, один для записи другой для чтения
Название: Re: Чтение Q-файла и сравнение строки Отправлено: Igors от Июнь 22, 2013, 14:22 Не могли бы вы написать функцию, которая возьмет этот, уже открытый файл, пробежится по нему, и проверит на совпадение со строкой check все его строки? На мой вгляд - неверная постановка задачи. Нужно сразу открыть файл по чтению, прочитать все строки в QHash (или QSet), закрыть его и потом заниматься добавлением как у Вас (при этом пополняя QHash). Тогда проверка на наличие просто QHash::exists. А бегать по файлу взад-вперед чтобы проверить строку - как минимум корявоЕсли можно сразу открыть файл, чтобы и записывать в конец и читать, то подскажите как его открывать? Название: Re: Чтение Q-файла и сравнение строки Отправлено: Bepec от Июнь 22, 2013, 14:26 Igors а если значений около миллиарда? :D
PS ну или больше 2 гигабайт? :D Название: Re: Чтение Q-файла и сравнение строки Отправлено: Igors от Июнь 22, 2013, 16:23 Igors а если значений около миллиарда? :D Все работает в каих-то пределах, напр Qt таблицы, листы и др тоже захлебнутся при таких объемах, это нормально. Поддержка больших данных - уже другая задача. Не надо думать что любой написанный код сработает хорошо на любых данных - это бывает редко :) PS ну или больше 2 гигабайт? :D Что делать есои "реально много" - ну может возможно частное решение. Напр у автора строка - цифры, тогда можно хранить их в виде диапазонов "от" и "до". Или хешировать по частям. Ну или "прильнуть к источнику наслаждения" (СУБД). Но все это уже др песня. Название: Re: Чтение Q-файла и сравнение строки Отправлено: Bepec от Июнь 22, 2013, 17:06 Согласен.
|