正如题目所讲如何判断一文本文件中包含某一字符串?

解决方案 »

  1.   

    pos可以
    或者用AnsiContainsStr
      

  2.   


    (****************************************************************************
     * 函数:   substrs
     * 功能:   按照切割符获取字符串中的子字符串
     * 作者:   tiger
     * 日期:   2005-08-01
     * 参数:   ASourceStr:string; --字符串
     * 参数:   ASeparatorChar:Char; --切割符 (用#9,#0)
     * 参数:   i:Integer  子字符串位置,从0开始计数
     * 返回值: string  --返回子字符串
     ****************************************************************************)
    function substrs(ASourceStr:string;ASeparatorChar:Char;i:Integer):string;
    var
      s:string;
      ipos,n:integer;
    begin
      s:=ASourceStr;
      n:=0;
      ipos:=Pos(ASeparatorChar,s);
      while ipos<>0 do
        if i=n then
        begin
          s:=copy(s,1,Ipos-1) ;
          break;
        end
        else
        begin
          delete(s,1,ipos);
          n:=n+1;
          ipos:=Pos(ASeparatorChar,s);
        end;
      if n<i then
        s:='';
      Result:=s;
    end;
    这是一个字符的,多个字符的类似
      

  3.   

    简单的就是 Pos(substr, str)如 s := 'this is a test!';
    Pos('is', s) 的结果就是 6 。负责的可能要用到专门的库,比如正则表达式之类的。
      

  4.   


    procedure TForm1.Button1Click(Sender: TObject);
     var sl: TStringList;
     smtp,str:string;
    begin
     str:='lff';{需查找的字符}
     if OpenDialog1.Execute then begin
     sl:=TStringList.Create;
      sl.LoadFromFile(OpenDialog1.FileName);
      smtp:=sl.Text;
      if pos(str,smtp)>0 then
      showmessage('找到')
      else
      showmessage('找不到');
      sl.Free;
     end;end;
      

  5.   

    刚才忘了加入转为大写比较,现在修正:procedure TForm1.Button1Click(Sender: TObject);
     var sl: TStringList;
     smtp,str:string;
    begin
     str:='lff';
     if OpenDialog1.Execute then begin
     sl:=TStringList.Create;
      sl.LoadFromFile(OpenDialog1.FileName);
      smtp:=sl.Text;
      if pos(AnsiUpperCase(str),AnsiUpperCase(smtp))>0 then
      showmessage('找到')
      else
      showmessage('找不到');
      sl.Free;
     end;end;