|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.01.2010, 12:52 | #1 |
Форумчанин
Регистрация: 08.10.2007
Сообщений: 125
|
оптимизация алгоритма выделения слов
Здравствуйте. Разработал ПО , в котором применяется выделение определённых слов различными цветами. Компонент для загрузки текста RichEdit. У меня два вопроса:
1)Алгоритм выделения: -найти слово1 (ф-ция Q_PosText) ; -выделить его средствами RichEdit с найденой позиции; -искать все слова1 в тесте (ф-ция Q_PosText) и выделять его средствами RichEdit; и т.д слово 2,3,4,5,6,7. Недостатки: -Всё работает , но при больших объёмах обработка занимает много времени; -Выделение слов происходит на глазах пользователя, т.е подчеркнув одно слово происходит перемещение курсора из области видимости вниз, потом следующее слово - опять переходит вверх, потом вниз и так скачет во время выделения. Можно ли как то оптимизировать этот алгоритм? 2)На начальном этапе происходит циклическая фильтрация теста с использованием регулярных выражений, где в цикле найденый текст заменяется на ''. Так вот на этом этапе происходит зависание программы и чем больше текст, тем больше зависание. Пробовал: -в цикл вставлять Application.ProcessMessage- не помогло; - делать эту обработку в другом потоке- не помогло. Есть ли возможность как то избавиться от этого? |
01.02.2010, 00:41 | #3 |
Форумчанин
Регистрация: 08.10.2007
Сообщений: 125
|
Спасибо за ответ. Ну а насчёт зависания при обработки регулярного выражения никто не подскажет чего-нибудь умного?
|
01.02.2010, 07:37 | #4 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Лапша все это. Я пробовал такой код - раскраска слов идет нормально, но при загрузке текста будут задержки и не малые. Для начала, ограничьте раскраску только тем диапазоном, который виден программисту. Прога большая, но ведь программер ее видит не всю, а только некоторый фрагмент, так зачем стараться и красить, то что программер не смотрит (и возможно, что не будет смотреть).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
01.02.2010, 07:45 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Я бы вообще лучше потратил лишнее время чтоб написать с нуля собственный компонент отрисовки, рассчитанный например на BB-код.
I'm learning to live...
|
01.02.2010, 10:59 | #6 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
RichEdit при разрисовки слов перерисовывает весь текст (даже если использовать кусок который видит программист). Следовательно если текст большой, то и время на перерисовку уйдет больше.
Поэтому соглашусь со Stilet'ом, лучше написать свой компонент или использовать сторонний. |
01.02.2010, 12:38 | #7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
А как вам использование RichView у меня в DFaq-e ?
http://www.programmersforum.ru/attac...5&d=1262695642 База не совсем маленькая, но все очень быстро... |
01.02.2010, 13:20 | #8 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
||
01.02.2010, 14:50 | #9 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
RichEdit вообще не выполняет того, что заявлено в его описании.
Имхо - абсолютно бесполезный компонент... |
01.02.2010, 15:50 | #10 | |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
выделения | peq | Microsoft Office Excel | 2 | 29.12.2009 10:31 |
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" | Mashaa | Помощь студентам | 13 | 09.12.2009 13:28 |
Отключение выделения | Gromsky | HTML и CSS | 5 | 01.12.2009 13:31 |
по вводу слов в массив и подсчёт введённых слов | -ushёl- | Общие вопросы C/C++ | 4 | 16.11.2009 00:45 |
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. | KAPAHDAW | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 17.02.2009 01:19 |