近几天碰到一个问题:没有搞过文件流,希望大家帮忙解决我有五个edit1,edit2,edit3,edit4,edit5
两个Richedit1,Richedit2,
我将5个edit,2个Richedit,用流写到文件中要求使用Richedit.Lines.SaveToStream();的流加上edit1.text
写入文件并把文件中的内容读到Richedit和edit.text中怎么做呀.

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      stm1, stm2: TMemoryStream;
    begin
      stm1 := TMemoryStream.Create;
      stm2 := TMemoryStream.Create;
      try
        RichEdit1.Lines.SaveToStream(stm1);
        RichEdit2.Lines.SaveToStream(stm2);
        stm1.Seek(0,soFromEnd);
        stm2.Position := 0;
        stm1.CopyFrom(stm2,stm2.Size);
        stm1.SaveToFile('c:\ww.txt');
      finally
        FreeAndNil(stm1);
        FreeAndNil(stm2);
      end;
    end;
      

  2.   

    chenzhuo(Jack Chen) 怎么读出来呀.
      

  3.   

    有五个edit1,edit2,edit3,edit4,edit5还有5个edit呀.chenzhuo
    的方法,还不能满足要求
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      stm1, stm2: TMemoryStream;
      fstm: TFileStream;
      iSize: Integer;
    begin
      stm1 := TMemoryStream.Create;
      stm2 := TMemoryStream.Create;
      fstm := TFileStream.Create('c:\ww.txt',fmCreate);
      try
        RichEdit1.Lines.SaveToStream(stm1);
        RichEdit2.Lines.SaveToStream(stm2);    stm1.Position := 0;
        iSize := stm1.Size;
        fstm.Write(iSize,SizeOf(Integer));
        fstm.CopyFrom(stm1,stm1.Size);    stm2.Position := 0;
        iSize := stm2.Size;
        fstm.Write(iSize,SizeOf(Integer));
        fstm.CopyFrom(stm2,stm2.Size);
      finally
        FreeAndNil(stm1);
        FreeAndNil(stm2);
        FreeAndNil(fstm);
      end;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      RichEdit1.Lines.Clear;
      RichEdit2.Lines.Clear;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      stm1, stm2: TMemoryStream;
      fstm: TFileStream;
      iSize: Integer;
    begin
      stm1 := TMemoryStream.Create;
      stm2 := TMemoryStream.Create;
      fstm := TFileStream.Create('c:\ww.txt',fmOpenRead);
      try
        fstm.Position := 0;
        fstm.Read(iSize,SizeOf(Integer));
        stm1.Position := 0;
        stm1.CopyFrom(fstm,iSize);
        stm1.SaveToFile('c:\tmp.txt');
        RichEdit1.Lines.LoadFromFile('c:\tmp.txt');    fstm.Read(iSize,SizeOf(Integer));
        stm2.Position := 0;
        stm2.CopyFrom(fstm,iSize);
        stm2.SaveToFile('c:\tmp.txt');
        RichEdit2.Lines.LoadFromFile('c:\tmp.txt');
      finally
        FreeAndNil(stm1);
        FreeAndNil(stm2);
        FreeAndNil(fstm);
      end;
    end;
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      stm1, stm2: TMemoryStream;
      fstm: TFileStream;
      iSize: Integer;
    begin
      stm1 := TMemoryStream.Create;
      stm2 := TMemoryStream.Create;
      fstm := TFileStream.Create('c:\ww.txt',fmCreate);
      try
        RichEdit1.Lines.SaveToStream(stm1);
        RichEdit2.Lines.SaveToStream(stm2);    stm1.Position := 0;
        iSize := stm1.Size;
        fstm.Write(iSize,SizeOf(Integer));
        fstm.CopyFrom(stm1,stm1.Size);    stm2.Position := 0;
        iSize := stm2.Size;
        fstm.Write(iSize,SizeOf(Integer));
        fstm.CopyFrom(stm2,stm2.Size);    iSize := Length(Edit1.Text);
        fstm.Write(iSize,SizeOf(Integer));
        fstm.Write(Edit1.Text[1],iSize);    iSize := Length(Edit2.Text);
        fstm.Write(iSize,SizeOf(Integer));
        fstm.Write(Edit2.Text[1],iSize);
      finally
        FreeAndNil(stm1);
        FreeAndNil(stm2);
        FreeAndNil(fstm);
      end;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      RichEdit1.Lines.Clear;
      RichEdit2.Lines.Clear;
      Edit1.Clear;
      Edit2.Clear;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      stm1, stm2: TMemoryStream;
      fstm: TFileStream;
      iSize: Integer;
      pstr: String;
    begin
      stm1 := TMemoryStream.Create;
      stm2 := TMemoryStream.Create;
      fstm := TFileStream.Create('c:\ww.txt',fmOpenRead);
      try
        fstm.Position := 0;
        fstm.Read(iSize,SizeOf(Integer));
        stm1.Position := 0;
        stm1.CopyFrom(fstm,iSize);
        stm1.SaveToFile('c:\tmp.txt');
        RichEdit1.Lines.LoadFromFile('c:\tmp.txt');    fstm.Read(iSize,SizeOf(Integer));
        stm2.Position := 0;
        stm2.CopyFrom(fstm,iSize);
        stm2.SaveToFile('c:\tmp.txt');
        RichEdit2.Lines.LoadFromFile('c:\tmp.txt');    fstm.Read(iSize,SizeOf(Integer));
        SetLength(pstr,iSize);
        fstm.Read(pstr[1],iSize);
        Edit1.Text := pstr;    fstm.Read(iSize,SizeOf(Integer));
        SetLength(pstr,iSize);
        fstm.Read(pstr[1],iSize);
        Edit2.Text := pstr;
      finally
        FreeAndNil(stm1);
        FreeAndNil(stm2);
        FreeAndNil(fstm);
      end;
    end;
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      stm1, stm2: TMemoryStream;
      fstm: TFileStream;
      iSize: Integer;
      I: Integer;
      Edit: TEdit;
    begin
      stm1 := TMemoryStream.Create;
      stm2 := TMemoryStream.Create;
      fstm := TFileStream.Create('c:\ww.txt',fmCreate);
      try
        RichEdit1.Lines.SaveToStream(stm1);
        RichEdit2.Lines.SaveToStream(stm2);    stm1.Position := 0;
        iSize := stm1.Size;
        fstm.Write(iSize,SizeOf(Integer));
        fstm.CopyFrom(stm1,stm1.Size);    stm2.Position := 0;
        iSize := stm2.Size;
        fstm.Write(iSize,SizeOf(Integer));
        fstm.CopyFrom(stm2,stm2.Size);    for I := 1 to 5 do
        begin
          Edit := FindComponent('Edit'+IntToStr(I)) as TEdit;
          if Assigned(Edit) then
          begin
            iSize := Length(Edit.Text);
            fstm.Write(iSize,SizeOf(Integer));
            fstm.Write(Edit.Text[1],iSize);
          end;
        end;
      finally
        FreeAndNil(stm1);
        FreeAndNil(stm2);
        FreeAndNil(fstm);
      end;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      RichEdit1.Lines.Clear;
      RichEdit2.Lines.Clear;
      Edit1.Clear;
      Edit2.Clear;
      Edit3.Clear;
      Edit4.Clear;
      Edit5.Clear;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      stm1, stm2: TMemoryStream;
      fstm: TFileStream;
      iSize, I: Integer;
      pstr: String;
      Edit: TEdit;
    begin
      stm1 := TMemoryStream.Create;
      stm2 := TMemoryStream.Create;
      fstm := TFileStream.Create('c:\ww.txt',fmOpenRead);
      try
        fstm.Position := 0;
        fstm.Read(iSize,SizeOf(Integer));
        stm1.Position := 0;
        stm1.CopyFrom(fstm,iSize);
        stm1.SaveToFile('c:\tmp.txt');
        RichEdit1.Lines.LoadFromFile('c:\tmp.txt');    fstm.Read(iSize,SizeOf(Integer));
        stm2.Position := 0;
        stm2.CopyFrom(fstm,iSize);
        stm2.SaveToFile('c:\tmp.txt');
        RichEdit2.Lines.LoadFromFile('c:\tmp.txt');    for I := 1 to 5 do
        begin
          fstm.Read(iSize,SizeOf(Integer));
          SetLength(pstr,iSize);
          fstm.Read(pstr[1],iSize);
          Edit := FindComponent('Edit'+IntToStr(I)) as TEdit;
          if Assigned(Edit) then
            Edit.Text := pstr;
        end;
      finally
        FreeAndNil(stm1);
        FreeAndNil(stm2);
        FreeAndNil(fstm);
      end;
    end;改过了,哎,你这20分还真不好拿!