C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
RichEdit & TStringList, Тормоза при обработке большх text файлов
Schumi
Отправлено: 22.08.2005, 10:27


Машинист паровоза

Группа: Участник
Сообщений: 206



Загружаю в RichEdit через LoadFromFile некоторый текстовый файл, порядка 500-600 Кб. Устанавливаю PlainText в true. Потом беру в цикле начинаю обрабатывать весь текст из Lines. К примеру — берется каждый символ каждый строки и по некоторой форме преобразовавается и записывается в некоторый отдельный массив. После всей работы этот массив скидывается в файл.
Проблема в том, что когда уже такой размера файл — это происходит очень медленно. А если напрямую — создаю TStringList -> LoadFromFile — и уже его обрабатываю, то вся процедура происходит очень быстро. Я уже RichEdit менял Enable, Visible и Begin/EndUpdate. Все по барабану.
Не подскажите, как ускорить обработку из RichEdit.

Пробовал по другому:грузил в RichEdit, потом просто в некоторую стринг отправлял RichEdit->Lines->Text — так это проходило ну очень медленно, или пытался StringList->Assign(RichEdit) — тот же результат.

Я догадываюсь, что за счет свойств она че-то там считает, проверяет, перерисовывает в случае RichEdit по сравнению с TStringList.

Я уже прикидывал: можно сделать так: грузить из файла одновременно и RichEdit и StringList — в первый для отображения для пользователя, во второй- для обработки. Но главная загвостка в том, что пользователь может текст в RichEdit отредактировать и НЕ ЗАПИСЫВАЯ ЕГО В ФАЙЛ затребовать преобразовать. И что же получается- мне придется скидывать RichEdit во временный файл, его грузить в StringList обрабатывать, а временный файл убивать — как-то некрасиво? Да и создавать одновременно RichEdit и StringList — тоже как-то не педагогично.

Как я представляю — строки хранятся в массиве TList — но как до него добраться? Хотя, я могу и ошибаться.
Schumi
Отправлено: 24.08.2005, 10:31


Машинист паровоза

Группа: Участник
Сообщений: 206



Длеаю теперь обрабоку через MemoryStream — гружу из Lines — вроде нормально теперь

Вернуться в Вопросы программирования в C++Builder