代码如何实现?

解决方案 »

  1.   

    怎么不能,直接
    filestream.copyform(memorystream,0);
      

  2.   

    filestream.copyform(memorystream,memorystream.size);
      

  3.   

    上面的朋友可能没有试过,我用下面的代码运行会出现'stream read error'
    procedure TForm1.Button1Click(Sender: TObject);
    var
    tfs:TfileStream;
    fs:TmemoryStream;
    fn:string;
    const
    buf = 'The first test';
    begin
    .... //fn包含一个文件名
    try
    fs:=TmemoryStream.Create;
    tfs:=Tfilestream.Create(fn,fmCreate);
    fs.Write(buf,length(buf));
    tfs.CopyFrom(fs,5);    //'stream read error'
    finally
    tfs.Free;
    fs.Free;
    end;
    end;
      

  4.   

    fs.Write(buf,length(buf));
    fs.Position:=0;
    tfs.CopyFrom(fs,5);
      

  5.   

    哈哈,少了,
          memorystream.seek(0,soFromBeginning) ;然后:
          fs.copyform(memorystream,memorystream.size);
    或者通过BUF
    var 
      buf : pchar ;
    begin
      GetMem(buf ,sizeof(memorystream.size));
      memoryStream.seek(0,soFromBeginning);
      memorystream.readBuffer(buf^,sizeof(memorystream.size));
      fs:=Tfilestream.Create(fn,fmCreate);
      fs.write(buf^.sizeof(memorystream.size));
      .....
    end;