读书人

问个流读写有关问题

发布时间: 2012-02-29 16:44:10 作者: rapoo

问个流读写问题
procedure TForm1.Button5Click(Sender: TObject);
var fs: TFileStream;
filesize:Integer;
begin
fs := TFileStream.Create(Edit1.Text, fmOpenReadWrite);
Edit2.Text := IntToStr(fs.Size) + '字节';
filesize:=fs.Size+4;
fs.Seek(0,soFromEnd);
fs.WriteBuffer(filesize,1048576);
//===================问题在此=============
这里的writebuffer后面的参数啊是写入几个字节对吧,
这里我写的是1024*1024就是1MB大小 然后提示出错了。。
写4或者1024都不错,究竟多大才会啊,
//==========================================
fs.Free;

end;

[解决办法]
fs.WriteBuffer(filesize,1048576);
这里的长度应该是被写入缓冲区的长度,filesize是integer类型,只有4字节长,所以最大自己能写4
[解决办法]
要写入1024*1024,可以这样写:
var
b: array of byte;
begin
.......
SetLength(b, 1024*1024);
fs.WriteBuffer(b, 1048576);
...
end;
[解决办法]

探讨
要写入1024*1024,可以这样写:
var
b: array of byte;
begin
.......
SetLength(b, 1024*1024);
fs.WriteBuffer(b, 1048576);
...
end;

[解决办法]
支持,

读书人网 >.NET

热点推荐