比如我要查如下内容
wuuweuyrweyiedskdskllsdkfljsljs
hakhdkjaskajs圣诞节
jkfdajfljaljf;ak;lskf
@qweuoiuqouljlj
qwuoiuqoerw 
aqweiuuyiw
@01201020200
我用richtextbox1.find(@,0)查找@符号,则在查到第一个@就停止向下查找
处于死循环状态。我试过如果没有中间“圣诞节”字符则可正确查到。不知该如何解决。

解决方案 »

  1.   

    dim p as long
    p=0
    private sub XXX()
    p=richtextbox1.find(@,p+1)
    ...
    end sub
      

  2.   

    如果不使用rtf格式的文件,查找应该没有问题,使用了容易查错。自已编写查措程序:instr(),不过被查参数的长度太长则有问题。
    可以将文字内容复制到另外一个不使用rtf格式的richtextbox中,在它里面进行查找,取得查找内容的位置
      

  3.   


      实现查找功能的关键在于使用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中输入要查找的字符串,单击 “查找”按钮和“查找下一个”按钮进行验证。 
      

  4.   

    如果是Win200+VB6可能有此毛病!实际只要装上SP5或装VB6中文版即可