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

Visual basic поиск и замена

 
 

Ну вот, сейчас мы сделаем Поиск и Замена, как в Word Pad.
На форму кинь 3 текстовых поля(Text1 - Текст, в котором будет осуществляться поиск и замена, Text2 - искомое слово, Text3 - Слово, на которое будет замененно найденное слово)
У тебя должно получиться что - то на подобие этого:

Теперь, перейдем к программной части:

Dim Zamena As Boolean

Private Sub Command1_Click()
' Если слово не найденно, то выводим сообщение, и выходим из процедуры:
If InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) = 0 Then
MsgBox "Слово '" & Text2.Text & "' Не найденно", 64, "Найти и Заменить"
Exit Sub ' Выходим из процедуры
End If

If Zamena = True Then ' Если переменная zamena = True, т.е. слово уже найденно(и выделенно), то:
Text1.SetFocus ' Ставим курсор в текстовое поле
Text1.SelStart = InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) ' Устанавливаем курсор перед найденным словом
Text1.SelLength = Len(Text2.Text) ' Выделяем столько символов, сколько вписанно в Text2
Text1.SelText = Text3.Text ' Заменяем выделенное слово, на текст Text3
Zamena = False
Exit Sub
End If

If InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) <> 0 Then ' Если слово найденно, то:
Text1.SetFocus ' Ставим курсор в текст. поле
Text1.SelStart = InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) ' Устанавливаем курсор перед найденным словом
Text1.SelLength = Len(Trim(LCase(Text2.Text))) ' Выделяем
Zamena = True
End If
End Sub

Исходник


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

Автор, в русском ты пипец неграмотный.. что уж о программировании говорить...

padre03 [10.12.2010 15:43]

Учебник писался 8 лет назад, я тогда еще в школе учился.
По поводу навыков программирования, стучи в аську, или на форум. Посмотрим кто из нас как программирует.
icq: 255-579-520

Паша [22.07.2012 16:31]

padre03, Я с Украины, и в русском темболие неграмотный. Но за учебник огромное тебе СПАСИБО!!!

РS. За всьо время нашол одну ошыбку в место "но" "на" !

Samou4120 [08.03.2013 23:05]

А у меня прога работала не корректно
(всё это дело было сдвинуто на 1 символ вправо)
подкорректировал практически наугад =D

Вот КОД:

Dim Zamena As Boolean

Private Sub Command1_Click()
' Если слово не найдено, то выводим сообщение, и выходим из процедуры:
If InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) = 0 Then
MsgBox "Слово '" & Text2.Text & "' Не найденно", 64, "Найти и Заменить"
Exit Sub ' Выходим из процедуры
End If

If Zamena = True Then ' Если переменная zamena = True, т.е. слово уже найдено(и выделено), то:
Text1.SetFocus ' Ставим курсор в текстовое поле
Text1.SelStart = InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) - 1 '[был добавлен -1]
Text1.SelLength = Len(Text2.Text) ' Выделяем столько символов, сколько вписано в Text2
Text1.SelText = Text3.Text ' Заменяем выделенное слово, на текст Text3
Zamena = False
Exit Sub
End If

If InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) 0 Then ' Если слово найдено, то:
Text1.SetFocus ' Ставим курсор в текст. поле
Text1.SelStart = InStr(1, Trim(LCase(Text1.Text)), Trim(LCase(Text2.Text))) - 1 ' [был добавлен -1]
Text1.SelLength = Len(Trim(LCase(Text2.Text))) ' Выделяем
Zamena = True
End If
End Sub



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




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