var
  F: TextFile;
  S: string;
  a:integer;
begin
  if OpenDialogFile.Execute then            { Display Open dialog box }
  begin
    AssignFile(F, OpenDialogFile.FileName); { File selected in dialog }
    Reset(F);
    while not F.Eof  do
    begin
      Readln(F, S);
      Memo1.Lines.Add(S);
    end;
    CloseFile(F);
  end;
end;

解决方案 »

  1.   

    strlist:TStringList;
    strlist.loadfromfile('a.txt');
    while i<strlist.count do
    begin
      Strlist[i].........
      i:=i+1;
    //或者用这个
    //strlist[0].....
    //  strlist.delete(0);
    //
    end;
    我测试过在2000下打开100M的文本文件没问题,而且速度很快!
      

  2.   

    eof就是判断文件结束啊,错误信息是什么哦?
      

  3.   

    好像应该是
    Memo1.Lines.LoadFromFile
      

  4.   

    if OpenDialogFile.Execute then
      Memo1.Lines.LoadFromFile(OpenDialogFile.FileName);这多简单!
      

  5.   

    判断eof(f)
    用tstringlist也可以
    unicode的用twidestringlist
      

  6.   

    to gardenyang(太阳雨) :
      strlist.loadfromfile('a.txt');在2000下打开100M的文本文件没问题,而且速度很快!真的有那么快的速度嘛? 你的机器不会是 100GHz的吧。^_^
      

  7.   

    iceriver521 (王子) :
      拿了你的分,我却没提到解决方法,这样是不行的.
      使用ReadFile来读文件,SetFilePointer来移动读取点,CreateFile来打开文件, 不过我想用TFileStream应该是可以的,不过我没试过.
      使用API来读取大文件,才是上上之策.