delphi 文件流使用问题

m:=TMemorystream.Create;TMemoryStream(m).LoadFromFile(Opendialog1.FileName);m.read(bu... m:=TMemorystream.Create;
TMemoryStream(m).LoadFromFile(Opendialog1.FileName);
m.read(buffer1,2)

最后一句,read里的参数超出4就会报错,请问是什么原因引起的?
展开
 我来答
fypx2001
2012-03-08 · 超过32用户采纳过TA的回答
知道答主
回答量:128
采纳率:100%
帮助的人:74.6万
展开全部
buffer1是定义成数组还是指针?还是整型?
如果是整型的话,长度就是4个字节,超过4个字节当然出错
如果数据比较多的话,可以定义数组,然后读到数组里面
buffer1:array[1..4096] of integer; //可以读4096个整型
m:=TMemorystream.Create;
TMemoryStream(m).LoadFromFile(Opendialog1.FileName);
m.read(buffer1,sizeof(buffer1));

不过你用的是内存流,也可以直接操作他的指针
buffer1:PInteger;

m:=TMemorystream.Create;
TMemoryStream(m).LoadFromFile(Opendialog1.FileName);
buffer1:=m.Memory;
for i:=0 to m.size div sizeof(integer) do
begin
buffer1^就是整型数字
inc(buffer1);
end;
zhenxin0603
2012-03-07 · TA获得超过600个赞
知道小有建树答主
回答量:600
采纳率:100%
帮助的人:452万
展开全部
把相关代码写全,变量咋定义的
另外你选择的文件是多大?
可以考虑在read前加上一行
m.Seek(0,soFromBeginning);
试试
追问
你好,我现在想一次性读取很多字节到BUFFER  大约上万个
用什么类型的变量可以实现呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syht2000
高粉答主

2012-03-07 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
你的buffer1长度有多长?
追问
buffer1 是integer类型的,可能是溢出了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式