![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| DimonKGZ |
|
|||
|
Unregistered |
Такая проблема:
for(int i=0;i<10000;i++) { Richedit->Lines->Add("asdfasdfasdfasdfasdf"); } - примерно такая структура выводит на монитор из рук вон медленно как ускорить? быстрее даже получается если сначала всё записать в файл а потом в richedit |
|||
|
||||
| &-ray |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 406 Регистрация: 15.4.2003 Где: Казахстан, г Аста на Репутация: нет Всего: нет |
Может быть такой вариант ускорит процесс:
заполняй в цикле не TRichEdit напрямую, а объект класса TStringList а в конце переводи все в ричедит. -------------------- "Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б. -------------------- И снова мышь беру я в руки Куда иду? - Конечно в сруки! |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Знаешь... у меня тоже была такая проблема... какой у тебя ящик.... вышлю исходник...
|
|||
|
||||
| DimaKGZ |
|
|||
|
Unregistered |
||||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Не отправляет... он у тебя полный... дай другой...
|
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Аська есть... давай по асе вышлю
|
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Я через пол часа ухожу... поторопись...
|
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Перед циклом RichEdit1.Lines.BeginUpdate
После цикла RichEdit1.Lines.EndUpdate -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
сколько надо -то mb?
|
|||
|
||||
| DimaKGZ |
|
|||
|
Unregistered |
попробуй на <[email protected]>
|
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
8...
|
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
на сдедующей неделе пришлю.. я побежал..
|
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Сходная проблема:
Я генерирую миллион значений Только я сначала все значения вывожу в поток:
Выводится ооочееннь долго, в чем может быть дело? Время вывода увеличивается нелинейно, т.е. если 100000 элементов выводится секунды за 3-4, то 500000 занимается уже несколько минут Как можно ускорить вывод? Среда builder, но раз уж тема создавалась, а производитель платформы один, то я думаю, что разницы большой не будет Это сообщение отредактировал(а) Alexey91 - 6.5.2011, 18:12 |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Прочитай, что написал Song
|
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Я читал уже, это не помогает )
Во-первых у меня не по одной линии в цикле, а вывод сразу всего файла, а во-вторых я ставлю RichEdit->Visible=false перед выводом. Если делать так: RichEdit->Lines->BeginUpdate(); RichEdit->Lines->LoadFromFile("fjkf"); RichEdit->Lines->EndUpdate(); разницы никакой не будет Если же выводить по одной линии в цикле, это приведет к гораздооо большим тормозам, чем если выводить из файла Это сообщение отредактировал(а) Alexey91 - 6.5.2011, 18:20 |
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
сложная проблема?
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Код
для миллиона строк показывает 5 с. Нужно меньше? Если да: http://stackoverflow.com/questions/4845380...files-in-delphi http://www.delphipages.com/forum/showthread.php?t=107955 Это сообщение отредактировал(а) Keeper89 - 6.5.2011, 20:32 |
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Не приводит это к 5 секундам при выводе миллиона (хотя мне их хватило бы за глаза)
в моем случае код такой: RichEdit1->Lines->BeginUpdate(); __try { RichEdit1->Lines->LoadFromFile("a"); } __finally { RichEdit1->Lines->EndUpdate(); } разницы совершенно нет никакой, как тормозил, так и продолжает |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Размер файла какой?
|
|||
|
||||
| halfhope |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Можно создать предка, для RichEdit , который хранит строки и управляет только отрисовкой видимой части. Поэтому не тормозит... Где - то слышал уже... Например окно кода в delphi работает так...
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |