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就会报错,请问是什么原因引起的? 展开
TMemoryStream(m).LoadFromFile(Opendialog1.FileName);
m.read(buffer1,2)
最后一句,read里的参数超出4就会报错,请问是什么原因引起的? 展开
3个回答
展开全部
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;
如果是整型的话,长度就是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;
展开全部
把相关代码写全,变量咋定义的
另外你选择的文件是多大?
可以考虑在read前加上一行
m.Seek(0,soFromBeginning);
试试
另外你选择的文件是多大?
可以考虑在read前加上一行
m.Seek(0,soFromBeginning);
试试
追问
你好,我现在想一次性读取很多字节到BUFFER 大约上万个
用什么类型的变量可以实现呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的buffer1长度有多长?
追问
buffer1 是integer类型的,可能是溢出了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询