Поиск в RTF

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Поиск в RTF

Сообщение Maxxx.!!!. » 22.12.2006 (Пт) 20:51

Ума не хватает реализовать поиск в VB.NET. В VB6 - хватало, а здесь - нет. уже и MSDN перерыл, но все-равно не понимаю. Так вот: есть текст в RTFbox'e, и надобно, найти, например, слово "выборка". Причем, надо чтобы все найденные эти слова в тексте были, например, выделены подчеркиванием. Заранее благодарен.
Никогда так не врут, как во время войны, после охоты и перед выборами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.12.2006 (Сб) 7:27

Делов то... В классе RichTextBox есть метод Find, реализованный аж в семи вариантах. Думаю, что этого количествв вполне должно хватить для поиска в самой изощренной форме.

Далее, наядя искомое можно сделать с ним все что угодно, пользуясь свойствами типа SelectionColor, SelectionFont и так далее и тому подобное
Весь мир матрица, а мы в нем потоки байтов!

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Сообщение Maxxx.!!!. » 23.12.2006 (Сб) 15:16

!Viper! писал(а):Делов то... В классе RichTextBox есть метод Find, реализованный аж в семи вариантах. Думаю, что этого количествв вполне должно хватить для поиска в самой изощренной форме.

Далее, наядя искомое можно сделать с ним все что угодно, пользуясь свойствами типа SelectionColor, SelectionFont и так далее и тому подобное


Простите, конечно, дурака, но я не умею им пользоваться. В VB6 - умел, а здесь -нет. И в MSND ничего не понял. Как им пользоваться хоть?
Никогда так не врут, как во время войны, после охоты и перед выборами...

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Сообщение Maxxx.!!!. » 23.12.2006 (Сб) 19:28

Единственное, до чего додумался:
Код: Выделить всё
Dim num_find As Integer 'номер символа начала найденного слова
        Do While num_find <> -1 'цикл, пока текст не закончится
            num_find = rtf.Find("выборка") 'ищем нужное слово
            If num_find <> -1 Then 'выбор, чтобы не вставлял лишнего
                rtf.SelectionBackColor = Color.Pink 'выделяем навыделенное цветом
                rtf.SelectedText = "ля-ля-ля" 'меняем найденное на другое
            End If
        Loop


Но у меня это получается, только есть заменить найденные слова на другие, а то он цикл бесконечно выполняет и все зависает. Помогите!
Никогда так не врут, как во время войны, после охоты и перед выборами...

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 24.12.2006 (Вс) 9:31

Код: Выделить всё
        Dim Loc_Find As Integer = -1
        Do
            Loc_Find = RTF.Find("выборка", Loc_Find + 1, RichTextBoxFinds.None)
            RTF.SelectionBackColor = Color.Pink
        Loop While (Loc_Find <> -1)
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Сообщение Maxxx.!!!. » 24.12.2006 (Вс) 20:38

Nord777 писал(а):
Код: Выделить всё
        Dim Loc_Find As Integer = -1
        Do
            Loc_Find = RTF.Find("выборка", Loc_Find + 1, RichTextBoxFinds.None)
            RTF.SelectionBackColor = Color.Pink
        Loop While (Loc_Find <> -1)



Большое человеческое спасибо. Работает.
Никогда так не врут, как во время войны, после охоты и перед выборами...


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 105

    TopList