Название: Вывод текста. Отправлено: gelonis от Апрель 24, 2010, 19:16 Помогите с простой задачей. Необходимо почитать текстовый файл и вывести его для просмотра. Пробовал выводить в QPlainTextEdit, QTextEdit, QTextBrowser при размерах файлов от 3М начинаются жуткие тормоза.Размер может доходить до 20М. Чем пользоваться? Это вообще нормальная ситуация или я в коде намудрил.
Делаю так Код: smallEditor = new QPlainTextEdit; Название: Re: Вывод текста. Отправлено: alexman от Апрель 24, 2010, 19:26 Можно реализовать виджет, который будет читать данные из файла на лету, то есть при сколлинге.
Название: Re: Вывод текста. Отправлено: gelonis от Апрель 24, 2010, 20:41 Планируется в последствии перед выводом текста его обрабатывать, как правильно это сделать, может есть пример?
Название: Re: Вывод текста. Отправлено: Igors от Апрель 24, 2010, 21:08 Непонятно зачем делать указатель на QString, ведь "просто QString" в данном случае займет даже меньше памяти :)
А в остальном Ваш вариант улучшить нечем. Динамический скроллинг (с подгрузкой) изучался несколько месяцев назад, (на этом форуме). но во всяком случае это сотни строк кода, ни о какой простоте говорить не приходится. До 100 Mb (объем файла) это не имеет смысла. Так что лучше смириться с тормозами :) Название: Re: Вывод текста. Отправлено: gelonis от Апрель 24, 2010, 21:18 Т.е это нормальная ситуация для этих компонентов? Вывод текста это же обычная процедура, неужели все программы на QT где это применяется тормозят.
Название: Re: Вывод текста. Отправлено: Авварон от Апрель 24, 2010, 22:57 в креаторе много кода по этому поводу, но, к сожалению, выдирать его всем лениво.
Название: Re: Вывод текста. Отправлено: alexman от Апрель 25, 2010, 10:18 Есть ли способ определить количество строк в файле быстро?
Название: Re: Вывод текста. Отправлено: Igors от Апрель 25, 2010, 10:33 Есть ли способ определить количество строк в файле быстро? readAll и split для возвращаемой QString. Скоростью это не блещет, если надо быстрее - то копирование файла в память и поиск концов строк скромным for. Название: Re: Вывод текста. Отправлено: alexman от Апрель 25, 2010, 10:41 Есть ли способ определить количество строк в файле быстро? readAll и split для возвращаемой QString. Скоростью это не блещет, если надо быстрее - то копирование файла в память и поиск концов строк скромным for. Название: Re: Вывод текста. Отправлено: alexman от Апрель 25, 2010, 10:48 Есть ли способ определить количество строк в файле быстро? readAll и split для возвращаемой QString. Скоростью это не блещет, если надо быстрее - то копирование файла в память и поиск концов строк скромным for. Название: Re: Вывод текста. Отправлено: Igors от Апрель 25, 2010, 11:48 Во втором способе есть небольшая проблема: файла может не влезть в оперативку! Можно попробовать загружать частями! Да + есть проблемы с символами концов строк. Варианты решения здесь http://www.prog.org.ru/topic_11267_0.html (http://www.prog.org.ru/topic_11267_0.html)Название: Re: Вывод текста. Отправлено: gelonis от Апрель 25, 2010, 18:14 в креаторе много кода по этому поводу, но, к сожалению, выдирать его всем лениво. Есть пример creatore: Dock Widgets Example. Попробовал вставить туда текста 16М устал ждать ответа от приложения. Как сделать обычный блокнот на QT типа Windows notepad, он же вроде на С реализован?Название: Re: Вывод текста. Отправлено: alexman от Апрель 25, 2010, 18:26 в креаторе много кода по этому поводу, но, к сожалению, выдирать его всем лениво. Есть пример creatore: Dock Widgets Example. Попробовал вставить туда текста 16М устал ждать ответа от приложения. Как сделать обычный блокнот на QT типа Windows notepad, он же вроде на С реализован?Название: Re: Вывод текста. Отправлено: Пантер от Апрель 25, 2010, 18:33 У Notepad раньше было ограничение в 64 килобайта. :)
Название: Re: Вывод текста. Отправлено: gelonis от Апрель 25, 2010, 19:27 Попробуйте сами у меня работает, пару секунд открывает зато потом без тормозов прокручивается.
Вики - В настоящее время редактор поддерживает контекстную замену, горячие клавиши (например, Ctrl-S для сохранения файла), снят предел в 64 Кбайт и добавлена поддержка Юникода. Название: Re: Вывод текста. Отправлено: ufna от Апрель 25, 2010, 20:31 хз, у меня 2метра нотепад долго открывает и висит, 16мегов - вообще даже ждать не хочется
Название: Re: Вывод текста. Отправлено: lit-uriy от Апрель 25, 2010, 21:13 А тему редактора поддерживающего большие файлы, разжёвывали на форуме основательно и даже тестовые приложения были выложены, которые файлы с фильмами (гигантские) открывают.
Стоит поискать Название: Re: Вывод текста. Отправлено: _Vitaliy_ от Апрель 25, 2010, 21:16 Проще всего вот так:
Код: rowCount=0; Для примера можешь посмотреть в уроке по qwt, там полный пример с считыванием данных, реализованных через модель:http://www.prog.org.ru/topic_11760_0.html (http://www.prog.org.ru/topic_11760_0.html) смотри в аттаче: http://www.prog.org.ru/index.php?action=dlattach;topic=11760.0;attach=1596 (http://www.prog.org.ru/index.php?action=dlattach;topic=11760.0;attach=1596) в принципе должен разобраться. Я считываю файлы по 10-20 "метров" за несколько секунд и это работает... Название: Re: Вывод текста. Отправлено: gelonis от Апрель 25, 2010, 21:23 Спасибо, буду разбираться, главное, что можно реализовать, а то уже стал сомневаться в возможностях QT
Название: Re: Вывод текста. Отправлено: gelonis от Апрель 25, 2010, 21:48 А тему редактора поддерживающего большие файлы, разжёвывали на форуме основательно и даже тестовые приложения были выложены, которые файлы с фильмами (гигантские) открывают. А можно носом ткнуть, если не тяжело:)Стоит поискать |