geshengping: 您的办法对付小文件还可以,如果文件有几兆的话,时间太长,对硬盘的磨损也厉害,这是一种效率最低的办法,不是‘一次性赋值’。
cytown:您的办法也不行,因为我并不需要整个文件,我只需要文件中间的一块。
Another_eYes:您的办法也行不通,不信试试如下代码:
var
tm,f,longa,longb,i: integer;
onearray:array of array of integer;
begin
longa:=10;
longb:=100;
f:=filecreate('c:/test');
for i:=1 to 2000 do
begin
filewrite(f,i,sizeof(i));
end;
fileclose(f);
setlength(onearray,longa,longb);
f := fileopen('c:/test', fmOpenRead);
tm:=fileread(f, OneArray, longa*longb*sizeof(Integer));//注意:tm=-1! fileclose(f);
//caption:=inttostr(tm);
//caption:=inttostr(onearray[0,0]);
end;