Не совсем БД это, но теоретически, очень даже похоже.
Есть log-файл одной проги. Сейчас он занимает около 12 метров. В нем четко прослеживаются поля (как если бы это была таблица ДБФ, к примеру). формат - текстовый, русские буквы + англ.буквы.
Мне необходимо:
1) сделать удобный просмотрщик для него (т.е., например, в каждой строке в позиции 22 (string[22]) идет символ разделение на таблицы - как я это себе представляю. ДО этого символа - дата записи. ПОСЛЕ этого символа - служебное сообщение). мне нужно разделить весь лог на несколько (10) таблиц с фильтром по string[22]-символу (там число просто, кста, может быть и не один символ, а два, если число перевалит 10).
2) сделать возможность "слежки" за этим логом - нужно проверять, как давно появилась запись с определенным символом в позиции string[22]. если больше, чем определенное количество секунд (минут), то "поднимать тревогу" (тут пока рано говорить о видах тревоги, но, может быть, придется
)
Хочу попросить совета по первому пункту. Как это лучше организовать? я вчера набросал тестовый проект (в QTreeWidget пихаю все различные символы в позиции string[22] всего файла (это идет секунд 15). потом перебором (уже вторым, знаю, что не оптимизировано) по двойному щелчку на QTreeWidgetItem я начинаю поиск (цикл с условием на сравнение этого символа в 22 позиции) нужных мне строк, которые потом запихиваю в QTableWidget в две колонки: первая - ДО символа в 22 позиции, вторая - все, что после него). И вот эта операция занимает аж несколько минут, при котором прога подвисает (без потоков пока делал, просто проверить).
Подскажите, как лучше организовать все, чтобы прога была максимально portable? Я уже думал в сторону всяких там SQL-БД... но я пока с ними не особо работал. Может есть вариант без использвания их? Может есть вариант использования SQL-запроса к какой-нибудь QTableWidget? В общем, подскажите, куды копать лучше будет...
ЗЫ! ОС - Винда
ЗЗЫ! сам лог обновляется где-то 1 раз в 2-20(30) секунд... так что перечитывать его придется все равно, чтобы актуальность была.