Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Поиск в TextBox Добавлено: 13.07.10 16:36  

Автор вопроса:  I'm
Ребят, не могу допереть, помогите.

На форме есть кнопка и 2 текстбокса
Нужно организовать поиск в одном из них по нажатию кнопки (искать нужно то что введенно в другой текстобокс)

Ну вообщем сделать обычный поиск , как например в блокноте....в блокноте есть текст, нажали контрол + F, вылезло окошко, туда записала что нужно найти, жмем на кнопку, если это сочетание (слово, буква, знак...неважно) - есть то это сочетание выделяется в текстбоксе где находися сам текст, если нет - то соответственно мсжбокс "что нету нефига"..

Вот и не могу не как допереть...Знающий человек подсказал что можно сделать это через Insert,но вот как сделать не пойму...

Помогите кодом или советом




сделал вот так, с помощью функции Spli...
НО находит только слова (если такие конечно имеются



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim text As String = CStr(TextBox1.Text)
        Dim int As Integer, cikl As Integer
        Dim str() As String = Split(text, " ")
        Dim ishem As String = CStr(TextBox2.Text)

        For cikl = 0 To str.Length - 1
            int = int + Len(str(cikl))
            If str(cikl) = ishem Then
                TextBox1.Select(int - Len(str(cikl)) + cikl, Len(str(cikl)))
                TextBox1.Select()
                Exit Sub
            End If

        Next
    End Sub

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Dark Engine



ICQ: 343191665 

Вопросов: 51
Ответов: 98
 Web-сайт: www.wentas.2bb.ru
 Профиль | | #1
Добавлено: 13.07.10 17:03
Instr (<нач>, <источник>, <искомое>;)
Ищет одну строку в другой и выдает найденную позицию начала искомой строки в исходной и ноль, если не нашлось. При желании можно даже убрать цикл, функция "Искать далее" подставляет в первый аргумент позицию конца найденной (то есть значение функции + длина строки во втором текстбоксе)

Ответить

Номер ответа: 2
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #2 Добавлено: 13.07.10 17:06

а пример привести можешь?

Ответить

Номер ответа: 3
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #3 Добавлено: 13.07.10 17:12

' Поиск в TextBox
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Вычисляем начало (первый символ искомого слова или строки)
        ;Dim SelectStart As Integer = InStr(TextBox1.Text, TextBox2.Text, vbTextCompare)
        ' Вычисляем длину искомого символа, слова или строки
        ;Dim SelectLen As Integer = Len(TextBox2.Text)
        If SelectStart > 0 Then ' Если ищем не пустое место, то
            TextBox1.Focus() ' фокус на TextBox и
            TextBox1.Select(SelectStart - 1, SelectLen) ' выделяем искомый фрагмент.
        End If
    End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Dark Engine



ICQ: 343191665 

Вопросов: 51
Ответов: 98
 Web-сайт: www.wentas.2bb.ru
 Профиль | | #4
Добавлено: 13.07.10 17:12
  1. Dim a as string
  2. Dim b as string
  3. a="ABCDEFabcdef"
  4. b="CD"
  5. Debug.Print Instr(1,a,b)
  6. b="cd"
  7. Debug.Print Instr(Instr(1,a,b)+len(b),a,b)


Первая цифра должна быть 3, вторая кажется 9 (просто сейчас нет возможности проверить, он выдает абсолютную позицию в строке или относительную от точки поиска).

Ответить

Номер ответа: 5
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #5 Добавлено: 13.07.10 17:13
спс бошой

Ответить

Номер ответа: 6
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #6 Добавлено: 13.07.10 17:13
  1. ' Поиск в TextBox
  2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.         ' Вычисляем начало (первый символ искомого слова или строки)
  4.         Dim SelectStart As Integer = InStr(TextBox1.Text, TextBox2.Text, vbTextCompare)
  5.         ' Вычисляем длину искомого символа, слова или строки
  6.         Dim SelectLen As Integer = Len(TextBox2.Text)
  7.         If SelectStart > 0 Then ' Если ищем не пустое место, то
  8.             TextBox1.Focus() ' фокус на TextBox и
  9.             TextBox1.Select(SelectStart - 1, SelectLen) ' выделяем искомый фрагмент.
  10.         End If
  11.     End Sub

Ответить

Номер ответа: 7
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #7
Добавлено: 16.07.10 12:49
Очень трудоёмкое и мыслезатрачиваемое изменение

  1. ' Поиск в TextBox
  2.      Private SelectStart As Integer
  3.      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.          ' Вычисляем начало (первый символ искомого слова или строки)
  5.          SelectStart = InStr(SelectStart, TextBox1.Text, TextBox2.Text, vbTextCompare)
  6.          ' Вычисляем длину искомого символа, слова или строки
  7.          Dim SelectLen As Integer = Len(TextBox2.Text)
  8.          If SelectStart > 0 Then ' Если ищем не пустое место, то
  9.              TextBox1.Focus() ' фокус на TextBox и
  10.              TextBox1.Select(SelectStart - 1, SelectLen) ' выделяем искомый фрагмент.
  11.          Else
  12.              SelectStart = 1
  13.              MsgBox "Нихера я больше не нашел..."
  14.          End If
  15.      End Sub

Ответить

Номер ответа: 8
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #8
Добавлено: 16.07.10 13:24
хотя Дмитрий Юпатов привел более конкретный код.

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 16.07.10 17:11
Мда, это только у меня возникла мысль что чел пишет на .NET?

И до сих пор никто не сказал про рассово верную функцию String.IndexOf

Ответить

Номер ответа: 10
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #10
Добавлено: 16.07.10 22:57
И до сих пор никто не сказал про рассово верную функцию String.IndexOf

а ты соседнюю тему почитай :)
я выложил решение из бородатого проекта.
Выкладывай свое, может и тебе благодарности достанутся :) :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам