05.12.2022, 16:21 | #1 |
Участник
|
Медленная работа StringEdit
Привет всем.
Недавно обнаружил что StringEdit - очень медленный контрол. Пример Есть табличка лог и форма с закладками На 2-й закладке EditControl по memo полю в котором лежит текст примерно на 11 мегабайт. При попытке переключиться на 2-ю закладку все виснет. про загружен на 100%. Пробовал экспериментировать подсовывая тексты разной длины Число символов 5000. 46 миллисекунд на отображение. Число символов 32 тысячи. 343 миллисекунд на отображение. Число символов 256 тысяч. 5 672 миллисекунд на отображение. Число символов 512 тысяч. 9 781 миллисекунд на отображение. Число символов 1024 тысяч. 38 673 миллисекунд на отображение. Можно ли как-то ускорить ? Если текст выгрузить джобом в текстовый файл и открыть NotePad-ом то 11 мегабайт отображаются быстро. |
|
05.12.2022, 18:43 | #2 |
Участник
|
Напрашивающееся решение
Отображать в контроле первые XXX символов, а если надо все, то по отдельной кнопке. Или в новую форму или подгрузить в это же окно. Кстати, можно по кнопке в блокноте открыть Можно попробовать использовать Reach Text Box или HTML, но не уверен, что это будет быстрее. Не работал с такими объемными текстами...
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
05.12.2022, 18:56 | #3 |
Участник
|
с одной стороны, даже завидно становится таким неординарным задачам, в которых в StringEdit отображается мемо на 11 мегабайт
а с другой, создается впечатление, что вы Аксапту используете для того, для чего она не очень предназначена |
|
06.12.2022, 09:53 | #4 |
Участник
|
Да это обычный лог.
Но в него часто смотрят и при этом на некоторых записях клиент зависал. |
|
06.12.2022, 09:54 | #5 |
Участник
|
Да, так и сделали. Если текст длинный, то контрол скрываем, но по кнопке открываем блокнот или по другой кнопке копируем в буфер обмена.
|
|
06.12.2022, 10:03 | #6 |
Участник
|
А хранить лог в виде таблицы (одна строка лога - одна запись таблицы) и отображать эту таблицу в Grid?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Pandasama (2). |
06.12.2022, 10:13 | #7 |
Участник
|
Цитата:
Там обычная табличка. Есть 2 поля Parameters str 1000 FullParameters Memo Оба содержат одно и то же. На гриде отображается Parameters (значение может быть усеченным из-за ограниченной длины поля в БД) На 2-й закладке отображается полный текст FullParameters Соответственно, все работает но для некоторых записей при переключении на 2-ю закладку все виснет. |
|
06.12.2022, 13:09 | #8 |
Участник
|
FullParameters Memo
Содержимое этого поля - это строки. Вот и хранить каждую строку текста в отдельной записи. Вряд ли одна строка будет длиннее 1000 символов. Порезать текст по символам перевода строки и возврата каретки 13+10. Каждый кусок - отдельная запись таблицы
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
06.12.2022, 16:35 | #9 |
Участник
|
Цитата:
|
|
06.12.2022, 16:47 | #10 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Pandasama (2). |
06.12.2022, 17:20 | #11 |
Участник
|
Цитата:
С формой работает аналитик или программист. Там обобщенный лог. 99% записей не имеют там никаких base64 |
|
06.12.2022, 17:36 | #12 |
Участник
|
А чем вариант открывать по кнопке блокнот не устраивает? Ускорить мне кажется не получится. Редакторы, которые работают быстро, скорее всего, текст динамически подгружают, а stringEdit грузит сразу все. Разве что какой-нибудь ActiveX прикрутить
|
|
06.12.2022, 18:21 | #13 |
Участник
|
Цитата:
stringEdit похоже пытается переносить по строкам и делает это медленно в отличие от того же notePad Если в свойствах контрола включить multiline - да, то зависает сразу без переключения на закладку с контролом, сразу после того как на строке встанешь. |
|
06.12.2022, 19:37 | #14 |
Участник
|
Так, может, попробовать для его отображения объект "HTML Document"? Ну, то, что в форме \Forms\tutorial_Form_Controls на последней закладке.
Или перед отображением вырезать Base64, если его можно по тегам определить. Хотя, вырезание из 11 МБ тоже долго будет выполняться
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Logger (1). |