VB中如何實現文本查找功能?
實現查找功能的關鍵在于使用InStr函數,這個函數可以找到指定的字符串在另一字符串中最先出現的位置。我們先來看一看使用這個函數的語法:
InStr([start, ]string1, string2[, compare])
這個函數需要的的參數是起始位置、主體字符串、要查找的字符串;Compare是可選參數。指定字符串比較。此compare參數是可以省略的,也可以是 0, 1或 2。指定0(缺。┳龆M制比較。指定1做不區(qū)分大小寫的文本比較。例如我們要查找在字符串“abcdefg”中是否存在“cd”并返回其位置,則使用下面的語句就可以實現:
pos=InStr(1,"abcdefg","cd")
則pos會返回3表示查找到并且位置為第三個字符開始。這就是“查找”的實現,而“查找下一個”功能的實現就是把當前位置作為起始位置繼續(xù)查找。
下面舉例說明:
放置一個文本框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() ’從當前位置繼續(xù)查找
FindText TargetPosition + 1
End Sub
運行程序,在文本框1中輸入一些字符串,在文本框2中輸入要查找的字符串,單擊 “查找”按鈕和“查找下一個”按鈕進行驗證。 |