我打开一个文件显示在Memo1中,先输入一个要查询的特定字符,如"部门经理",然后开始搜索Memo1中内容,并判断“部门经理”在Memo1中内容中是否存在,如果有这个字符串内容,则返回showmessage(‘该文件中包含有’+str1)。 procedure TForm1.FormShow(Sender: TObject);  //打开窗体时自动连接文件内容到memo1中显示出来
var
f:textfile;
s:string;
begin
memo1.Clear;
Assignfile(f,'C:\test\ghk.txt');
reset(f);
try
 while not eof(f) do
  begin
   readln(f,s);
   memo1.Lines.Append(s);
  end;
finally
closefile(f);
end;
end;procedure   TForm1.Button1Click(Sender:   TObject);//搜索特定的字符内容开始
  var
  Pos1,Pos2,i:integer;
  Str,str1:string;
  Flag:Boolean;
  begin
  str1:=edit1.Text; ('输入部门经理') //在这里预先输入要查询的字符
     for   i:=0  to Memo1.Lines.Count-1  do
           begin
                  Str:=Memo1.Lines[i];
                  Flag:=True;
                  while   Flag   do
                  begin
                  Pos1:=AnsiPos(str1,Str);
                  if Pos1<>0 then
                  begin
                 showmessage(str1+'找到了');
                  end;
                  end;
          end;
end;

解决方案 »

  1.   

    procedure TForm1.FormShow(Sender: TObject); //打开窗体时自动连接文件内容到memo1中显示出来
    var
    f:textfile;
    s:string;
    begin
    memo1.Clear;
    Assignfile(f,'C:\test\ghk.txt');
    reset(f);
    try
     while not eof(f) do
      begin
      readln(f,s);
      memo1.Lines.Append(s);
      end;
    finally
    closefile(f);
    end;
    end;
    =procedure TForm1.FormShow(Sender: TObject); //打开窗体时自动连接文件内容到memo1中显示出来
    begin
      Try
        Memo1.Lines.LoadFromFile(''C:\test\ghk.txt'); 
      except
      end;
    end;一句就装入了
      

  2.   

    直接 判断 Memo1.Lines.text 就可以了! 需要用到循环!
    调下Pos1的返回值就知道什么原因了!
      

  3.   

      while Flag do
      begin
      Pos1:=AnsiPos(str1,Str);
      if Pos1<>0 then
      begin
      showmessage(str1+'找到了');
      end;
      end;
    这不是死循环吗?