procedure TForm1.Button4Click(Sender: TObject);
var  aa,bb : TFileStream ;
     buffer : array of byte;
     readnum : integer;
begin
  aa := TFileStream.Create('d:\2.doc',fmOpenRead );
  
  SetLength(buffer,aa.Size);//aa.size确实有值
  aa.Position := 0;
  readnum := aa.Read(buffer,aa.Size);
  ShowMessage(inttostr(readnum));
end;
怎么返回的readnum 为0?buffer就是没有写入!!!

解决方案 »

  1.   

    procedure TForm1.Button4Click(Sender: TObject);
    var  aa,bb : TFileStream ;
         buffer : array of byte;
         readnum : integer;
    begin
      aa := TFileStream.Create('d:\2.doc',fmOpenRead );
      
    //  SetLength(buffer,aa.Size);//aa.size确实有值
    //  aa.Position := 0;
    //  readnum := aa.Read(buffer,aa.Size);
      readnum :=aa.size;
      ShowMessage(inttostr(readnum));
    end;
      

  2.   

    楼主为什么要用buffer呢?如果想把流存入buffer,应该用writebuffer啊。
      

  3.   

    aa := TFileStream.Create('e:\1.txt',fmOpenRead );
      //aa := TFileStream.Create('d:\2.doc',fmOpenRead );  SetLength(buffer,aa.Size);//aa.size确实有值
      aa.Position := 0;
      readnum := aa.Read(buffer,aa.Size);
      ShowMessage(inttostr(readnum)); //不是0 啊,是文件的大小阿,只不过会有一个异常
    还有楼上说的对啊,
    要往buffer中写应用aa.write(buffer,aa.Size)啊
      

  4.   

    readnum := aa.Read(buffer[0],aa.Size);类似问题回答过几百遍了