![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| derek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.7.2006 Репутация: нет Всего: нет |
вообщем такая задача. Есть слово(string) и richTextBox1 уже забитый текстом. Задача - вставить слово в текст в нужной поцизии (ну там где курсор ввода)..
я делаю так. разбиваю текст на части. От начала текста до слова, потом само слово, и от конца слова до конца текста. И забиваю в richTextBox - это работает но если вбитый текст большой, то процесс добавления слова в текст протекает довольно медленно. Вопрос - как эффективно вставлять слово в текст, так чтобы это протекало максимально быстро..особенно желательно с примерами. Большое спасибо. да и еще - вот на всякий случай мой код..
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
derek, есть специальный метод Insert
Это сообщение отредактировал(а) ivashkanet - 31.8.2006, 09:25 |
|||
|
||||
| derek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.7.2006 Репутация: нет Всего: нет |
ivashkanet, конечно этот Insert гораздо компактнее чем то, как делал я. Но по скорости как ни странно они примерно одинаковы. Может есть какой нить другой способ?
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Не может быть. В нем используется другой подход к работе со строками, возможно Unmanaged код, а может что-нить еще круче. В общем:
P.S. Можно посмотреть в сторону класса StringBuilder. |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Провел краш-тест:
Исходный текст: миллион букв А, вставляемый: тысяча букв В, позиция вставки: 1000. Число прогонов: 1000 Результаты: insert --- 6-7 сек. склейка --- 13-15 сек. Итог: выигрышь 50% --- очень даже не плохой результат. Не стоит сильно заморачиваться в скорости, комп итак неплохо справляется с этой операцией. |
|||
|
||||
| derek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.7.2006 Репутация: нет Всего: нет |
опять вернулся к этой теме..
например у меня на форме расположен richtextbox и кнопка с таким кодом
в результате - не работает |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Строки в .NET неизменяемы. Это значит, что любой метод класса System.String возвратит новую строку, не затронув данные той, к которой он был применён.
|
|||
|
||||
| derek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.7.2006 Репутация: нет Всего: нет |
Exception, ок все получилось..
назревает новый вопрос...как реализовать чтобы после добавления в готовый текст слова, каретка устанавливалась бы не на начало текста, а сразу после добавленного слова Это сообщение отредактировал(а) derek - 17.10.2006, 01:55 |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |