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,的时候读不出数据来了.很是纳闷,请了解的朋友给小弟讲解下,多谢了.
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,的时候读不出数据来了.很是纳闷,请了解的朋友给小弟讲解下,多谢了.