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

Поиск и Замена в vb net

 
 

В этом шаге мы сделаем программу 'Поиск и Замена'(ну как почти во всех текстовых редакторах, например, WordPad). На форме размести 3 текстовых поля(TextBox1 - что заменяем, TextBox3 - чем заменяем, TextBox2 - текст), кнопку(Text = "Поиск и замена"), и CheckBox(Text = "Заменить все"). Вобщем, вот что у тебя должно получиться:



Код:

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

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

If CheckBox1.Checked = True Then ' Если на CheckBoxe стоит галка, то:
TextBox2.Text = Replace(TextBox2.Text, Trim(TextBox1.Text), Trim(TextBox3.Text)) ' Функция Replace нужна для замены во всем тексте искомого слова, на новое слово(TextBox2 - текст, Textbox1 - искомое слово, TextBox3 - новое слово(замена)).
Else ' Если галки не стоит
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() ' Прокручиваем текст до выделенного слова 
TextBox2.SelectedText = Trim(TextBox3.Text) ' Заменяем выделенный текст

Pozition = TextBox2.SelectionStart + Len(Trim(TextBox1.Text)) ' Переменная Pozition = позиции найденного слова, это для того чтобы одно слово не искалась по несколько раз 

Else ' Если ни чего не найденно(или поиск закончен), то выдаем сообщение и устанавливаем значение переменных по умолчанию 

MsgBox("Поиск завершен")
Pozition = 1
End If
End If
End Sub 

Исходник

P.S. Теперь можешь сделать какой - нибудь текстовой редактор, типо Блокнота.


Есть вопросы? Спроси на нашем форуме!!
DriftSoft [07.08.2013 08:52]

Здравствуйте! А как сделать чтобы замена проводилась в шаблоне Word (т.е. в шаблоне создать определенные переменные и из программы эти переменные заменялись на определенный текст вбитый в программе)?

alex13sh300 [07.08.2013 09:45]

изменять текст в чужого окна, геймор, надо находить эт текст по хенделу, обрабатывать по вашему алгоритму и опрадно отправлять

DriftSoft [07.08.2013 11:47]

Как это можно осуществить? я новичок в программировании

EverybodyLies280 [07.08.2013 13:46]

DriftSoft, в Word есть макросы - VBA, как раз для таких задач

alex13sh300 [07.08.2013 15:02]

аа ну да, совсем забыл. да и не пользовался)



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




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