怎样储存及读取数组?(多维(50分)

  • 主题发起人 主题发起人 刘晗
  • 开始时间 开始时间
储存到那里,从那里读取?
 
Type
TOne=array[1..10] of Integer
//一维
TTwo=array[1..5,1..5]of Integer
//二维
TThere=array[-5..5,0..5,0..100]of Integer
//三维


procedure TForm1.FormCreate(Sender: TObject);
Var
One:TOne;
Two:TTwo;
i,j:Integer;
begin
One[1]:=1;
Two[1,1]:=2;
ShowMessage(IntToStr(One[1]));
ShowMessage(IntToStr(Two[1,1]));
end;
 
type
a=array [1..2] of integer;
b=array [1..2] of a;
c=array [1..2] of b;
与wangjerry的是等价的吧


 
动态定义一个三维数组:
int (*Array)[8][9];
Array = new int[10][8][9];
........................
delete []Array;
 
补充一点,,
length不仅是字符串的长度,而且也可以返回数组的中维的个数,,
 
存储的方法可以很多,方式有存储为String型和Binary的区别. 字符型有点是可以用文本编辑
程序进行修改,缺点是速度慢,占控件.

不论那种方式,你都要先设计存储的格式,可以带Header也可以不带.
如果文件比较简单,格式固定的话,可以不要这个Header,读入的时候检测是否到文件结尾即可

如果是复杂的数组,考虑用Stream读写吧
 
是指把数组存到磁盘文件上?
blockwrite
blockread
 
当然是存在磁盘上啦。谁有详细方法?
 
有很多方法:
最好理解的方法,写入文本文件中,文件格式:
i j k .... value
1 0 0 555
1 1 0 4444
 
可参考《数据结构》(清华)
 
用 TFileStream 行列依次写入就可以了。
 
用STREAM存取效果好象不错
 
刘晗:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 

Similar threads

后退
顶部