数组问题(var data:array of byte;data[0] 与 data) ( 积分: 30 )

  • 主题发起人 主题发起人 ddzhouqian
  • 开始时间 开始时间
D

ddzhouqian

Unregistered / Unconfirmed
GUEST, unregistred user!
我在读取文件信息的时候,出现了个奇怪的问题
var filehandle:integer;
filename:string;
data:array of byte;
count:cardinal;
begin
filehandle:=fileopen(filename,fmOpenReadWrite);
if filehandle=-1 then
begin
showmessage('read file error!');
exit;
end;
fileseek(filehandle,0,0);
count:=100000;
setlength(data,count);
fileread(filehandle,data,count);/如果这样读取数据也能获取,但随着count的值的变大,读取的数据将不正确,但如果比较小的话,读取的数据是正确的.
fileread(filehandle,data[0],count);//注意这里用了data[0],也就是数组的首个元素地址来接受,那么我测试的结果是读取的数据是我所需要的,当然仅仅是作为比较,特别大的count的没有试过.
end;
我的问题是为什么data也能获取到数据,而且在某个count值内数据是正确的,而过了这个也就是count+1,的时候读不出数据来了.很是纳闷,请了解的朋友给小弟讲解下,多谢了.
 
没人知道嘛?还是我没说清楚啊?或者说的东西没啥代表性.大家都没遇到过啊?
 
你试试 data:array of byte;
改成 data: pbytearray;
 
好,我会试的,不过我的问题是为什么data也能取到数据,很是奇怪!想知道原因
 
能收到是很正常的,出错才奇怪。
另外我那个要用 Getmem 分配内存
 
后退
顶部