首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

保存数据到文件的设计思路,该如何解决

2012-02-24 
保存数据到文件的设计思路最近在做一个把树结构保存到本地文件的功能,然后下次从文件中读取树结构,功能能

保存数据到文件的设计思路
最近在做一个把树结构保存到本地文件的功能,然后下次从文件中读取树结构,功能能完成了。 但如果想增加新的节点属性DWORD Size,就需要手动去维护 在保存的地方再写入新的属性4个字节,
  //保存树的代码是这样的 
  WriteFile(hFile,pTree->value1 , ...)//写入树的每个字段属性
  WriteFile(hFile,pTree->value2 , ...)//写入树的每个字段属性
  WriteFile(hFile,pTree->value3 , ...)//写入树的每个字段属性
  WriteFile(hFile,pTree->value4 , ...)//写入树的每个字段属性
字段中也会 有字符串, 会先写个字符串大小,后面跟着字符串,但读取的地方也必须先读个字符串大小,再读字符串数据。

写入时 字段大小 和属性 是什么顺序,从文件中读取时 也必须按照这个顺序,否则就会出错。

现在想给树增加个属性字段,也保存到文件,字段为:DWORD dwSize = 0;

然后读取树结构的地方 增加读取4个字节,并且读取字段属性的顺序 和大小 也要跟写入时顺序一致:
  DWORD dwSize = 0;
  ReadFile(hFile,&dwSize,4,dwRet,0);
得到大小之后,在赋值到相应的属性
  Tree pTree = new Tree;
  pTree->size = dwSize;

但这样每次增加或删除,都要在写入文件 和读取文件的地方 手动维护,很麻烦 也很容易出错,一不小心,属性读取的先后顺序弄错了,整个树就没办法恢复过来了 。 有没有一种比较好的设计思路 可以让删除和修改同步化,即 保存到文件 字段 和字段顺序是怎样的,读取的时候就按照写入的那样读取, 值维护保存到文件的地方就可以。 

  有比较好的设计思路吗

[解决办法]
另外做一个windows的小工具,专门用于修改这个数据文件。

热点排行