比如我要查如下内容
wuuweuyrweyiedskdskllsdkfljsljs
hakhdkjaskajs圣诞节
jkfdajfljaljf;ak;lskf
@qweuoiuqouljlj
qwuoiuqoerw
aqweiuuyiw
@01201020200
我用richtextbox1.find(@,0)查找@符号,则在查到第一个@就停止向下查找
处于死循环状态。我试过如果没有中间“圣诞节”字符则可正确查到。不知该如何解决。
wuuweuyrweyiedskdskllsdkfljsljs
hakhdkjaskajs圣诞节
jkfdajfljaljf;ak;lskf
@qweuoiuqouljlj
qwuoiuqoerw
aqweiuuyiw
@01201020200
我用richtextbox1.find(@,0)查找@符号,则在查到第一个@就停止向下查找
处于死循环状态。我试过如果没有中间“圣诞节”字符则可正确查到。不知该如何解决。
p=0
private sub XXX()
p=richtextbox1.find(@,p+1)
...
end sub
可以将文字内容复制到另外一个不使用rtf格式的richtextbox中,在它里面进行查找,取得查找内容的位置
实现查找功能的关键在于使用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中输入要查找的字符串,单击 “查找”按钮和“查找下一个”按钮进行验证。