Машинист паровоза
Группа: Участник
Сообщений: 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 — но как до него добраться? Хотя, я могу и ошибаться.
|