回 帖 发 新 帖 刷新版面

主题:[原创]《查找、替换、查下一个》代码示例

 在这里新建二个TEXT.分别为text1、text2.
新建三个按钮。为command1、COMMAND2、COMMAND3
FORM1窗口中的text5为查找范围。

Option Explicit
Private TargetPosition As Integer

      Private Sub FindText(ByVal start_at As Integer)
      Dim pos As Integer
      Dim target As String
      '获取用户输入的要查找的字符串
      target = Text1.Text
      pos = InStr(start_at, Form1.Text5.Text, target)
      If pos > 0 Then
            '找到了匹配字符串
            TargetPosition = pos
            Form1.Text5.SelStart = TargetPosition - 1
            '选中找到的字符串
            Form1.Text5.SelLength = Len(target)
            Form1.Text5.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

Private Sub Command3_Click()
FindText 1
Form1.Text5.SelText = Text2.Text

End Sub

回复列表 (共4个回复)

沙发

板凳

效率太低了,当数据量较大时,查找速度会相当缓慢,甚至“死掉”。
我以前试过把数据处理成变量数组,自己写算法查找(不用instr),从硬盘查找的速度就可以达到 2.5M/S,和windows 自带的查找工具速度相当。

3 楼

二楼的,能否讲的详细点,或者指点一下迷津。

4 楼

小弟是VB初学者,只学了一个学期,看不太懂那些查找.想请教你一个问题.我想在text1中查找几个中文字,比如"垃圾","去死"等,找到后弹出Msgbox,这段代码该怎么写呢?谢谢了!~

我来回复

您尚未登录,请登录后再回复。点此登录或注册