12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
|
|
1 | |
QMap из файла07.07.2012, 18:25. Показов 4276. Ответов 13
Метки нет (Все метки)
Здравсвуйте, сразу прошу прощения , с Qt начал работать относительно не давно и многое ещё не понятно, пишется словарь, состоящий из 2х файлов первый word.dat вида id, keyword(одно- два слова).
второй файл wordlib.dat вида id, wordlibkey(тут может быть не ограниченный текст) для хранения всего этого безобразия выбрал QMap так как id уникальны этого должно хватить, вопросов возникает много, 1) справится ли QMap с этим так как слов будет 30-50 тысяч соответственно статей столько же. 2) сколько и как это будет считывается из файла и как это можно упростить, 3) как это всё отобразить щас я рассчитываю выводить всё в QplainTextEdit, но опять же учитывая объемы , справится ли это с данной задачей. заранее благодарен. P.S. по возможности подскажите кусочек кода именно с загрузкой из файлов в QMap`ы. Задумывался над использованием БД, Но это не очень хороший вариант, так как программа должна быть портабельной, условно на диск\флешку, если ошибаюсь , прошу исправить с адекватными комментариями.
0
|
07.07.2012, 18:25 | |
Ответы с готовыми решениями:
13
Чтение QMap из бинарного файла Преобразование qmap<k,v> в qmap<v,k> QMap и foreach QMap обновление |
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
07.07.2012, 18:33 | 2 |
Map для этого и предназначен - у него сложность работы с элементами log2(N)
те для 2 элементов условная сложность будет 1, для 1024 - 10, для 1048576 - 20, для 30000 - примерно 15, ну вы поняли есть разные варианты хранения, один из вариантов уже готовых в Qt - сереализация у меня нет сейчас компилятора под рукой - но вот например http://stackoverflow.com/quest... in-qt?rq=1
1
|
12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
|
|
07.07.2012, 18:42 [ТС] | 3 |
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
07.07.2012, 18:46 | 4 |
будут - попробуем разобраться
0
|
12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
|
||||||
08.07.2012, 15:58 [ТС] | 5 | |||||
не хватает сообразительности( , беру я свой файлик word.dat Загоняю его в поток, всё здорово, а как потом его переложить в Qmap , который объявил вот так
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
08.07.2012, 19:11 | 6 | |||||
естественно 1.dat оказывается нечитаемым для человека
2
|
12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
|
|
09.07.2012, 20:41 [ТС] | 7 |
спасибо за помощь, да , но это и не требуется что бы файл был читаем в свободном доступе, единственно, возник вопрос, можно ли потом вносить изменения в поля , скажем
id word и поменять значения word, так что бы оно переписалось , нормально в файл ?. прощу прощения на такое большое количество глупых вопросов , с контейнерами особо не приходилось иметь дело.
0
|
12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
|
|
16.07.2012, 16:25 [ТС] | 9 |
а кроме таких танцев , решений нет?
цели какие есть же word.dat его положили в Qmap, вывели QTextbrowser, потом если что - то нужно изменить жмакнули на выделенном слове и дальше получается, что . нужно изменить Qmap, и только потом загнать обратно в word.dat ? но 35000 слов строк так туда сюда гонять. это накладно ж, или нет
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
16.07.2012, 16:49 | 10 |
ну все относительно
удаление записи из файла как ни крути будет нетривиальным прямое решение тут по сути лишь использование СУБД (ящитаю) 35000 записей при использовании достаточно оптимальной сериализации думаю не будут слишком накладными, тем более это будет происходить лишь раз при выходе из программы но самое правильное это попробовать
0
|
12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
|
|
16.07.2012, 16:55 [ТС] | 11 |
согласен, но возникает сложность в портировании базы, так как программа должна быть портируемая и не лезть в интернет (даже есть БД развернуть где-то удаленно)
Вот в процессе, немного не хватает знаний и опыта.
0
|
AHT0H
|
|
08.01.2013, 02:37 | 12 |
SQLite в помощь. Самое удобное решение в данном случае, без всяких танцев.
Хоть и не актуально уже, но мож кому-то еще поможет ) |
08.01.2013, 11:47 | 14 |
Что там нетривиального? Тема на уровне курсовой по алгоритмам. Вот если захочется кешированных деревьев, то тут действительно сложно будет.
SQLite/Firebird внутри себя используют B-деревья.
0
|
08.01.2013, 11:47 | |
08.01.2013, 11:47 | |
Помогаю со студенческими работами здесь
14
QMap с параметрами Qmap and QPoint QMap и QVariant QMap в label Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |