![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
mgf |
|
||||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Помогите пожалуйста решить вопрос с Richedit. В нем забит текст, который загружается из текстового файла. Например: *Вопрос. Ответ: ...*
Задача такова, что нужно заменить троеточие на слово, побуквенно, которое будет вводится побуквенно в edit. У меня пока только стирает троеточие и оставляет пустоту...слово вместо троеточия не вводится. помогите, исправить пожалуйста. Вот все, что у меня написано из кода
|
||||
|
|||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Может быть, тебе j нужно увеличивать, а не i? В любом случае, i - это переменная цикла, зачем её трогать-то. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Chydik |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 7.1.2007 Репутация: нет Всего: нет |
Во первых строка начинается не с 0 а с 1:
Во вторых ты проходинся по всему тексту заменяя все . (т.е после ввода одного символа в edit каждую . после первой ты заменяешь на j=j+1, хотя данного символа у тебя нет) потому я и использовал Break; В третих j вынес из Edit1Change т.к. она всегда была бы =1 В четвертых в данном случае есть недостаток: Если взять пример *Вопрос. Ответ: ...*, то первой будет заменена . после Вопрос;
|
||||||
|
|||||||
HeliX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 6.6.2009 Репутация: нет Всего: нет |
Согласен с Chydik, только хочется кое-что дополнить.
1. Зачем использовать OnChange, проще распарсить текст сразу после загрузки, либо отключить редактирование рича. Если конечно не предполагается, что пользователь сам может менять текст рича и вводить эти самые "...". Но в этом случае лучше тоже не использовать OnChange, т.к. ничего кроме "тормозов" это не даст. В этом случае лучше добавить отдельное действие на другой контрол, или в OnChange устанавливать флаг, а потом в таймере каждые Н-секунд парсить текст если он был изменен(флаг). Все же будет получше чем паксить при вводе/удалении каждого нового символа. 2. Не вижу смысла в вашем случае что-то изобретать (я про цикл парсинга текста), есть такие функции как pos,delete и Insert. Вот собственно как выглядит вся замена:
Это сообщение отредактировал(а) HeliX - 7.6.2009, 09:13 |
|||
|
||||
mgf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
попробовала сделать по предложению Chydik, но он все равно у меня стирает только эти три точки, ничего не добавляя
|
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
mgf, я уже отвечал Вам на тот же самый вопрос: http://forum.vingrad.ru/index.php?showtopi...t&p=1863195. Зачем по сто раз одно и то же спрашивать?
Вот тот же код, вопрос берется теперь из файла:
Прикрепляю измененный проект. Это сообщение отредактировал(а) Keeper89 - 7.6.2009, 14:35 Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
|||
|
||||
mgf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
извиняюсь...не видела этого...
Благодарю за помощь, проект скачала теперь! Это сообщение отредактировал(а) mgf - 7.6.2009, 15:05 |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "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. |