如何在一个文本文件或者一个memo中搜索是否有某字符串,如1234,并返回他所在的行号

解决方案 »

  1.   

    能具体点么?如何查找memo1里字符串’1234‘所在的行号?
      

  2.   

    Var
    i :integer;
    begin
    for I:=0 to Memo1.Lines.Count-1 do
    begin
        begin
         showmessage(inttostr(i+1));
         break;  //如果你希望在查询到第一个后,结束查找,就加上这一句,否则,去掉
        end;
    end;
      

  3.   

    to gulf1234(小顾) 
    怎么没有看到查找过程?
      

  4.   

    Var
    i :integer;
    begin
    for I:=0 to Memo1.Lines.Count-1 do
    begin
        begin
         if Memo1.Item[i] = '要查的值' then
         showmessage(inttostr(i+1));
         break;  //如果你希望在查询到第一个后,结束查找,就加上这一句,否则,去掉
        end;
    end;
      

  5.   

    Var
    i :integer;
    begin
    for I:=0 to Memo1.Lines.Count-1 do
    begin
        begin
         if Memo1.Lines[i] = '要查的值' then
         begin
            showmessage(inttostr(i+1));
            Exit;
         end
        end;
    end;上面错了
      

  6.   

    一行一行遍历,用pos来判断是否包含,是最简单的方法,但效率有可能低下如果你用richedit或rxRichEdit的话,还可以结合finddialog调用richedit的findtext的方法,但看你提的问题和水平,估计第一种方法就可以了,如果需要,我可以把第二种方法的代码提供出来供你参考,第一种简单的无以复加所以不写了
      

  7.   

    运用Pos写一个Function ,要查找的值作为输入参数。
      

  8.   

    Var i :integer;begin
    for I:=0 to Memo1.Lines.Count-1 do     if POS( AnsiLowerCase('1234') , AnsiLowerCase(Memo1.Item[i]) ) <> 0 then
         begin
           showmessage('在第' + inttostr(i+1) + ‘行找到此字符串’ );
           if messageDLG('是否继续查找?',mtconfirmation,[mbyes,mbno],0)=mrno then 
             break;  
         end;end ; *********注意**********BEGIN
    例如:
    a := 'AABBCC' ; 
    b := 'BB' ;
    c := 'bB'POS ( b , a )  // 返回值为 3 。
    POS ( c , a )  // 返回值为 0 。*********注意**********END。
    总结 :POS 函数是有区分大小写的。
    所以用上AnsiLowerCase函数 将字符转换为小写后再比较 ,或者可以用AnsiUpperCase 函数 将字符转换为大写后再比较
      

  9.   

    运用Pos写一个Function ,要查找的值作为输入参数。
    就算是这样也要一行行遍历
      

  10.   

    procedure FindStr(Memo1:TMemo;str:String);
    var i:integer;
    begin
      For i:=0 to Memo1.Lines.Count-1 Do
      Begin
        if pos(str,Memo1.Lines[i])<>0 then
         ShowMessage('Line In '+IntToStr(i));
      End;
    end;procedure TForm1.Button4Click(Sender: TObject);
    begin
         FindStr(Self.Memo1,'come');
    end;
      

  11.   

    findtext('待查字符',0,整个文本长度,stWholeWord);