参考delphi的demo,里面就有一个查找的例子。

解决方案 »

  1.   

    我是不断的变pos('substr','str')中的'str'的范围如下:
    =====================================================
    ……
    IF StartPos=0 THEN
     Begin
     iPos:=Pos(iFindText,Memo.Text);
     if iPos=0 then
     begin
     MessageBox(self.Handle ,Pchar('Not Found "'+iFindText+'"'),pchar('Null'),0);
      ReplaceDialog.CloseDialog ;
     end
     else begin
     Memo.SelStart :=iPos-1;
     Memo.SelLength :=iLength;
     StartPos:=Memo.SelStart+iLength ;
     Memo.SetFocus ;
          end;
     END ELSE
     Begin
     Memo.SelStart :=StartPos;
     Memo.SelLength:=Length(Memo.Text);
     WhereToFind:=Memo.SelText ;
     iPos:=Pos(iFindText,WhereToFind);
     if iPos=0 then
     begin
     MessageBox(self.Handle ,Pchar('Not Found "'+iFindText+'"'),pchar('Null'),0);
     Memo.SelStart :=0;
     ReplaceDialog.CloseDialog ;
     end else begin
     Memo.SelStart :=iPos+StartPos-1;//这里要理解,下一次的开始就是上一次的结束为开始。
     Memo.SelLength :=iLength;
     StartPos:= Memo.SelStart+iLength;
     Memo.SetFocus ;
     end;
     END;……