我用下面的方法进行读写,但读的时候出错,读不了。请各位高手指教一下!谢谢!procedure TFomr1.WriteData (Sender: TObject); 
Var
  FileStream:TFilestream;
  Mywriter:TWriter;
  i: integer
Begin
  FileStream:=TFilestream.create('c:\Test.txt',fmopenwrite);//创建文件流对象
  Mywriter:=TWriter.create(FileStream,1024); //把Mywriter和FileStream联系起来
  Mywriter. writelistbegin;  //写入列表开始标志  For i:=0 to Memo1.lines.count-1 do   
  Mywriter.writestring(memo1.lines[i]); //保存Memo组件中文本信息到文件中  Mywriter.writelistend;          //写入列表结束标志 
  FileStream.seek(0,sofrombeginning); //文件流对象指针移到流起始位置
  Mywriter.free; //释放Mywriter对象
  FileStream.free; //释放FileStream对象
End;b)读文件
procedure TForm1.ReadData(Sender: TObject);
Var
  FileStream:TFilestream;
  Myreader:TReader;
Begin
  FileStream:=TFilestream.create('c:\Test.txt',fmopenread);
  Myreader:=TReader.create(FileStream,1024); //把Myreader和FileStream联系起来  {下面的语句出错}
  Myreader.readlistbegin;  //把写入的列表开始标志读出来,出错!!!!!  Memo1.lines.clear; //清除Memo1组件的文本内容  While not myreader.endoflist do //注意TReader的一个方法:endoflist
    Begin
      Memo1.lines.add(myreader.readstring); //把读出的字符串加到Memo1组件中
    End;  Myreader.readlistend; //把写入的列表结束标志读出来
  Myreader.free;  //释放Myreader对象
  FileStream.free; //释放FileStream对象
End;

解决方案 »

  1.   


     Mywriter:TWriter;
    寫完之後, 還要
    Mywriter.FlushBuffer;
      

  2.   

    加了这个Mywriter:TWriter;读的时候还是会出错。
    Myreader.readlistbegin;  //把写入的列表开始标志读出来,出错!!!!!
      

  3.   

    調試過, 很正常procedure TForm1.WriteData(Sender: TObject);
    Var
      FileStream:TFilestream;
      Mywriter:TWriter;
      i: integer;
    Begin
      FileStream:=TFilestream.create('c:\Test.txt',fmCreate or fmopenwrite);//?ゅン瑈?禜
      Mywriter:=TWriter.create(FileStream,1024);
      Mywriter. writelistbegin;  For i:=0 to Memo1.lines.count-1 do
       Mywriter.writestring(memo1.lines[i]);  Mywriter.writelistend;
      Mywriter.FlushBuffer;
      FileStream.seek(0,sofrombeginning);
      Mywriter.free;
      FileStream.free;
    End;procedure TForm1.ReadData(Sender: TObject);
    Var
      FileStream:TFilestream;
      Myreader:TReader;
    Begin
      FileStream:=TFilestream.create('c:\Test.txt',fmopenread);
      Myreader:=TReader.create(FileStream,1024); //рMyreader㎝FileStream?╰癬?  Myreader.readlistbegin;  Memo2.lines.clear;  While not myreader.endoflist do
        Begin
          Memo2.lines.add(myreader.readstring);
        End;  Myreader.readlistend;
      Myreader.free;
      FileStream.free;
    End;procedure TForm1.Button1Click(Sender: TObject);
    begin
       WriteData(self);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
     memo2.Lines.Clear;
     ReadData(self);
    end;