VB中如何实现文本查找功能 ---- 目前流行的软件一般在“编辑”菜单中都有“查找”、“查找”下一个功能,这个功能看起来复杂,实际上实现起来是很简单的,下面介绍实现方法。 ---- 实现查找功能的关键在于使用InStr函数,这个函数可以找到指定的字符串在另一字符串中最先出现的位置,这个函数需要的的参数是起始位置、主体字符串、要查找的字符串。“查找下一个”功能的实现就是把当前位置作为起始位置继续查找。举---- 例说明如下:---- 界面安排:放置一个文本框TEXT1供用户输入文本或调入文本文件,用来做在其中查找文本的验证,放置另一个文本框TEXT2供用户输入要查找的字符串,放置两个命令按钮,Command1、Command2,其标题分别为“查找”、“查找下一个”。---- 在窗体的总体声明部分写如下代码 :Option Explicit '定义目标位置变量 Private TargetPosition As Integer '编写一个查找函数 Private Sub FindText(ByVal start_at As Integer) Dim pos As Integer Dim target As String '获取用户输入的要查找的字符串 target = text2.Text pos = InStr(start_at, text1.Text, target) If pos > 0 Then '找到了匹配字符串 TargetPosition = pos text1.SelStart = TargetPosition - 1 '选中找到的字符串 text1.SelLength = Len(target) text1.SetFocus Else '没有找到匹配的字符串MsgBox "没找到!" text1.SetFocus End If End Sub双击“查找”命令按钮: Private Sub command1_Click() '从第一个字符处开始查找 FindText 1 End Sub双击“查找下一个”按钮:Private Sub command2_Click() '从当前位置继续查找 FindText TargetPosition + 1 End Sub---- 运行程序,在文本框1中输入一些字符串,在文本框2中输入要查找的字符串,单击 “查找”按钮和“查找下一个”按钮进行验证。
查找替换所选字符 Function sReplace(SearchLine As String, SearchFor As String, ReplaceWith As String) Dim vSearchLine As String, found As Integerfound = InStr(SearchLine, SearchFor): vSearchLine = SearchLine If found <> 0 Then vSearchLine = "" If found > 1 Then vSearchLine = Left(SearchLine, found - 1) vSearchLine = vSearchLine + ReplaceWith If found + Len(SearchFor) - 1 < Len(SearchLine) Then _ vSearchLine = vSearchLine + Right$(SearchLine, Len(SearchLine) - found - Len(SearchFor) + 1) End If sReplace = vSearchLineEnd Function
---- 目前流行的软件一般在“编辑”菜单中都有“查找”、“查找”下一个功能,这个功能看起来复杂,实际上实现起来是很简单的,下面介绍实现方法。
---- 实现查找功能的关键在于使用InStr函数,这个函数可以找到指定的字符串在另一字符串中最先出现的位置,这个函数需要的的参数是起始位置、主体字符串、要查找的字符串。“查找下一个”功能的实现就是把当前位置作为起始位置继续查找。举---- 例说明如下:---- 界面安排:放置一个文本框TEXT1供用户输入文本或调入文本文件,用来做在其中查找文本的验证,放置另一个文本框TEXT2供用户输入要查找的字符串,放置两个命令按钮,Command1、Command2,其标题分别为“查找”、“查找下一个”。---- 在窗体的总体声明部分写如下代码 :Option Explicit
'定义目标位置变量
Private TargetPosition As Integer
'编写一个查找函数
Private Sub FindText(ByVal start_at As Integer)
Dim pos As Integer
Dim target As String
'获取用户输入的要查找的字符串
target = text2.Text
pos = InStr(start_at, text1.Text, target)
If pos > 0 Then '找到了匹配字符串
TargetPosition = pos
text1.SelStart = TargetPosition - 1
'选中找到的字符串
text1.SelLength = Len(target)
text1.SetFocus
Else '没有找到匹配的字符串MsgBox "没找到!"
text1.SetFocus
End If
End Sub双击“查找”命令按钮:
Private Sub command1_Click()
'从第一个字符处开始查找
FindText 1
End Sub双击“查找下一个”按钮:Private Sub command2_Click()
'从当前位置继续查找
FindText TargetPosition + 1
End Sub---- 运行程序,在文本框1中输入一些字符串,在文本框2中输入要查找的字符串,单击 “查找”按钮和“查找下一个”按钮进行验证。
Function sReplace(SearchLine As String, SearchFor As String, ReplaceWith As String)
Dim vSearchLine As String, found As Integerfound = InStr(SearchLine, SearchFor): vSearchLine = SearchLine
If found <> 0 Then
vSearchLine = ""
If found > 1 Then vSearchLine = Left(SearchLine, found - 1)
vSearchLine = vSearchLine + ReplaceWith
If found + Len(SearchFor) - 1 < Len(SearchLine) Then _
vSearchLine = vSearchLine + Right$(SearchLine, Len(SearchLine) - found - Len(SearchFor) + 1)
End If
sReplace = vSearchLineEnd Function