procedure TForm1.Button1Click(Sender: TObject);
var
  vFileName: TFileName;
  vSearchText: string;
  I: Integer;
begin
  vFileName := 'test.txt';
  vSearchText := 'new year';
  if FileExists(vFileName) then Exit;  with TStringList.Create do try
    LoadFromFile(vFileName);
(*
    I := IndexOf(vSearchText);
    ShowMessage(IntToStr(I)); //完全相等
*)
    for I := 0 to Count - 1 do
      if Pos(vSearchText, Strings[I]) > 0 then
        ShowMessage(IntToStr(I)); //包含
  finally
    Free;
  end;
end;嘻嘻嘻 伴水 :) 版权所有 嘻嘻嘻嘻

解决方案 »

  1.   

    linedata:string;
    while not eof(f) do
      begin
      readln(f,linedata);
    end;
    这样,文本文件的内容全被读到字符串Linedata中,剩下的工作就是在字符串中查找子串了。
    可以使用的函数很多,看看帮助。STRPOS
      

  2.   

    var
      slist : TStrings;
      i : integer;
    begin
      slist := TStringList.Create;
      slist.LoadFromFile('f:\abcd.txt');
      for i := 0 to slist.Count - 1 do begin
        if pos('new year',slist.Strings[i]) > 0 then begin
          showmessage('OK:'+inttostr(i));
          break;
        end;
      end;
    end;
      

  3.   

    var
      slist : TStrings;
      i : integer;
    begin
      slist := TStringList.Create;
      slist.LoadFromFile('f:\abcd.txt');
      for i := 0 to slist.Count - 1 do begin
        if pos('new year',slist.Strings[i]) > 0 then begin
          showmessage('OK:'+inttostr(i));
          break;
        end;
      end;
    end;