如何把一个多维数据array[x1,x2,x3,x4,x5].保存在一个文本文件里.(想要简单的方法,不要搞得太复杂,越简单越好)(30)

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

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把一个多维数据array[x1,x2,x3,x4,x5].保存在一个文本文件里.(想要简单的方法,不要搞得太复杂,越简单越好)怎么写语句
 
循环写啊.....还能怎么办如果是二维以上的,可以考虑采用类似树遍历的方法(把多维数组看成是N个有固定数量子节点的树)读写
 
多少维都没关系 不过你得存住x1,x2,x3,x4,x5这5个值格式大概如下:x1x2x3x4x5data1_1_1_1_1data1_1_1_1_2...data1_1_1_1_x5data1_1_1_2_1data1_1_1_2_2...data1_1_1_x4_x5...datax1_x2_x3_x4_x5用stringlist load save
 
i,j,k,l,m:integer;for(i) for(j) for(k) for(l) for(m)stringlist.add(data[i,j,k,l,m]);
 
5个循环,x1-x5用TStringList类,一行保存一条5个元素值,中间可以用空格或别的符号分隔再SaveFile或LoadFromFile之类的
 
呵呵,要是一个一个写,不如写到INI 文件里uses.....inifiles...inifile:Tinifile;....inifile := Tinifile.Create(filename);s:= inttostr(x1)+'.'+inttostr(x2)+'.'+...inttostr(x5);inifile.readsting('jllu',s,'');inifile.writestring('jllu',s,'');
 
写INI不是个好办法,本来就是顺序读出的,用INI效率很低而且最大容量有限制。xusong168的方法是正道,事实上,我通常就这么干的
 
i,j,k,l,m:integer;for(i) for(j) for(k) for(l) for(m)stringlist.add(data[i,j,k,l,m]); 老大们,写具体一点行吗.
 
//array[x1,x2,x3,x4,x5].Var sl:Tstringlist; i,j,k,l,m:integer;begin sl:Tstringlist.Create; sl.add(IntToStr(x1)); sl.add(IntToStr(x2)); sl.add(IntToStr(x3)); sl.add(IntToStr(x4)); sl.add(IntToStr(x5)); for i:= 0 to x1-1 Do begin for j:= 0 to x2-1 Do begin for k:= 0 to x3-1 Do begin for l:= 0 to x4-1 Do begin for m:= 0 to x5-1 Do begin sl.add(IntToStr(data[i,j,k,l,m])); end; end; end; end; end; sl.free;end;
 
F:TextFile;直接用Write(F,array);
 
多人接受答案了。
 
后退
顶部