Программирование
Веб программирование

Поиск в vb net

 
 

Сейчас мы сделаем программу, которая будет искать определенный текст в текстовом поле. На форме размести 2 текстовых поля(В TextBox1 будет введено искомое слово, в TextBox2 будет текст, в котором будет поиск(так что в TextBox2 помести поболше текста(при помощи свойста Lines(см. 4 часть)))), и кнопку. Вот что у тебя должно получиться:

Теперь код:

Dim Pozition As Integer = 1 ' В переменной хранится позиция курсора 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' При нажатии на кнопку 'Поиск' 

If InStr(Pozition, LCase(TextBox2.Text), LCase(Trim(TextBox1.Text))) <> 0 Then ' При помощи функции InStr в TextBox2 ищем текст введенный в TextBox1, функции LCase нужна для перевода всех символов в нижний регистр, т.е. это для того чтобы искался текст не зависимо от того в каком регистре символ(короче, ПриВет и пРИвЕТ будет искаться одинаково). Функция Trim нужна для обрезания пробелов слево и справо. Переменная Pozition задает позицию курсора(по умолчания Pozition = 1, т.е. поиск будет с первого символа)

TextBox2.Focus() ' TextBox2 передаем фокус 
TextBox2.SelectionStart = InStr(Pozition, LCase(TextBox2.Text), LCase(Trim(TextBox1.Text))) - 1 ' Устанавливаем позицию курсора перед найденным словом. Всё дело в том, что если в тексте было найденно искомое слово, то функция выдает позицию этого слова(т.е. количество символов перед искомым словом в тексте). 
TextBox2.SelectionLength = Len(Trim(TextBox1.Text)) ' Выделяем найденное слово(выделение начинается с позиции курсора, и длится столько, сколько символов в слове)
TextBox2.ScrollToCaret() ' Прокручиваем текст до выделенного слова

Pozition = TextBox2.SelectionStart + Len(Trim(TextBox1.Text)) ' Переменная Pozition = позиции найденного слова, это для того чтобы одно слово не искалась по несколько раз 
Else ' Если ни чего не найденно(или поиск закончен), то выдаем сообщение и устанавливаем значение переменных по умолчанию 
MsgBox("Поиск завершен")
Pozition = 1
End If

End Sub 

Исходник


Есть вопросы? Спроси на нашем форуме!!
sekretar [29.10.2010 21:14]

уважаемый автор!
подскажите плиз иной метод поиска текста.
нужно, чтобы код искал определенный текст в Exel-файле и смещался на N ячеек вправо по найденной строке, затем нужно присвоить переменную числу, котороое будет находиться в ячейке, после смещения.
Да, кстати, поиск должен проходить в самом файле без всяких текстбоксов.

заранее спасибо.

sekretar [29.10.2010 21:15]

мой e-mail 1206alex@mail.ru

sekretar [29.10.2010 21:16]

мой e-mail 1206alex@mail.ru

sekretar [29.10.2010 21:36]

ну, или, хотябы, объясните как пользоваться функцией (или как это там называется) .find
пробовал пользоваться ей. Удалось написать код, который находит первые два заданных числа и складывает их, и выводит сумму на экран. Но другие такие же числа в заданном диапазоне поиска не ищет и не суммирует с уже найденными.
Но доконца так и не разобрался, видимо мозгов не хватает.
помогите пожалуйсто!

sekretar [30.10.2010 01:16]

ну хоть кто-нибудь ответит?!?

Riga [01.06.2011 17:36]

да ты лох !



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.