+ -
当前位置:首页 → 问答吧 → 保存数据到文件的设计思路

保存数据到文件的设计思路

时间:2011-12-27

来源:互联网

最近在做一个把树结构保存到本地文件的功能,然后下次从文件中读取树结构,功能能完成了。 但如果想增加新的节点属性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;

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

  有比较好的设计思路吗

作者: vbbianchengde   发布时间: 2011-12-27

另外做一个windows的小工具,专门用于修改这个数据文件。

作者: i_love_ai   发布时间: 2011-12-27

保存树到文件是 和从文件中读取树 都是在代码中写的, 不需要外部工具

作者: vbbianchengde   发布时间: 2011-12-27

大家不要睡觉了,都来帮我看下

作者: vbbianchengde   发布时间: 2011-12-27

热门下载

更多