Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Поиск в TextBox 2 Добавлено: 14.07.10 12:05  

Автор вопроса:  I'm
Ребят, еще раз сорки..
Вчера задавал почти аналогичный вопрос...
http://www.vbnet.ru/forum/show.aspx?id=207267

вот код:

' Поиск в 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


До ответа вроде сам допер..Но появился следующий вопрос!

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

Кто поможет

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

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



Вопросов: 9
Ответов: 35
 Профиль | | #1 Добавлено: 14.07.10 16:33
НУ поможет кто? или долго код писать? хотя бы идеи
Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 15.07.10 02:04
Сделать такой же поиск как в блокноте вобщем-то нетривиальная задача, и ты хочешь чтоб тебе весь код написали?
Номер ответа: 3
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #3
Добавлено: 15.07.10 03:05
он наверное не понимает, что InStr возвращает номер символа найденной строки, а первый параметр этой функции указывает с какого по счету символа нужно искать.

А если он это понимает, то он просто мозгами думать не хочет.
Номер ответа: 4
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #4
Добавлено: 15.07.10 03:06
Мы здесь таких как "мозгами думать не хочет" не любим...
Номер ответа: 5
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #5 Добавлено: 15.07.10 13:14
нда...подъебы писать не лень, а советы лень...
Номер ответа: 6
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #6 Добавлено: 15.07.10 13:18
а первый параметр этой функции указывает не на то с какого по счету символа нужно искать, а выражение для поиска...тоесть там где нужно найти , и уже второй параметр искомое....если Вы про это
Номер ответа: 7
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #7
Добавлено: 15.07.10 14:43
наивная душа Албанца.
Function InStr([Start], [String1], [String2], [Compare As VbCompareMethod = vbBinaryCompare])
    Member of VBA.Strings
    Returns the position of the first occurrence of one string within another
Номер ответа: 8
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #8
Добавлено: 15.07.10 14:44
Object Browser решает!
Номер ответа: 9
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #9
Добавлено: 15.07.10 14:59
нда...подъебы писать не лень, а советы лень...

Вам, уважаемый, самому подумать лень...
Вам в первой теме Dark Engine написал как функция работает.
В чем проблема? Правильно! Лень!
Номер ответа: 10
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #10 Добавлено: 15.07.10 16:47
кароче! не проще было написать совет или код?! нахэ мне твои поучительные довыды...я не за тем сюда обращался, а проблему решил, и опять же нехэ писать про лень и про думать, любит не любит
Номер ответа: 11
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #11 Добавлено: 15.07.10 16:49
блин!!!харьки пучеглазые(ЫЙ)
Номер ответа: 12
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #12
Добавлено: 15.07.10 16:56
Итак, на форме имеем:
TextBox1 - сюда мы вводим текст, который ищем
TextBox2 - сюда мы вводим текст, в котором ищем. Для этого контрола НЕОБХОДИМО установить свойство HideSelection = False - это чтоб не гасилось выделение при работе на другом контроле, в частности, при нажатии на кнопку поиска.
Желательно также MultiRow = True - чтоб по-человечески вбивать многострочный текст.
И Button1 - кнопка, по нажатию на которую будет происходить поиск.

Далее:
Объявляем переменную уровня класса:
  1. Dim start as integer = 1

т.е. пишем эту строчку под строчкой
  1. Public Class Form1
:)
ну и код для кнопки:
  1. Dim STR As String = Me.TextBox2.Text
  2.         Dim SubSTR As String = Me.TextBox1.Text
  3.         Dim L As Integer = Me.TextBox1.Text.Length
  4.         Dim Ind As Integer
  5.         Ind = InStr(Me.start, STR, SubSTR)
  6.         If Ind > 0 Then
  7.             Me.TextBox2.SelectionStart = Ind - 1
  8.             Me.TextBox2.SelectionLength = L
  9.             Me.start = Ind + L
  10.             Me.TextBox2.ScrollToCaret()
  11.         Else
  12.             Me.TextBox2.SelectionStart = 0
  13.             Me.TextBox2.SelectionLength = 0
  14.             Me.start = 1
  15.             Me.TextBox2.ScrollToCaret()
  16.             MsgBox("Пройден конец документа", MsgBoxStyle.Information)
  17.         End If

Все, при поиске найденный фрагмент подсвечивается, при повторном - подсвечивается следующий. Содержимое TextBox2 прокручивается при необходимости. Чтоб не бегать по кругу, а также в случае отрицательных результатов вылетит сообщение: "Пройден конец документа"

P.S. А подумать точно лень
Номер ответа: 13
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #13
Добавлено: 15.07.10 16:58
прошу прощения, свойство не MultiRow, а MultiLine
Номер ответа: 14
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #14
Добавлено: 15.07.10 17:03
I'm, ты охуел просто!
Тебе AWP четко и ясно подкинул идею.
Не такая уж и сложность была ее реализовать, так что про "думать лень" - весьма актуально сказано
Номер ответа: 15
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #15
Добавлено: 15.07.10 17:42
да не то, чтобы я идею кидал сильно кидал, просто в первой теме Dark Engine полностью алгоритм действий написал, и для поиска и для "Искать далее".

Страница: 1 | 2 |

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



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