版本控制的文件格式问题

tzcherish 2009-11-09 11:22:13
各位大侠,

现做的项目中涉及到很多参数,需要将所有参数都保存到文件中,参数的修改实现版本控制。
现需要寻找一种合适的文件格式来保存所有参数。要求文件不能直接打开查看。

希望大虾们能给点建议:
如何定义文件格式,
如何实现文件的读取,存储方式?

PS:要能用C++代码说明更好,较大的东东可以发到我邮箱tz.0107@163.com

小妹很感谢大虾们的答复!!!
...全文
195 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2009-11-16
  • 打赏
  • 举报
回复
参考 TLV / XDR 之类的格式。给一个最简单的 TLV 的例子。

FILE *fp = fopen("config.dat", "wb");
typedef enum { INT_TYPE, STRING_TYPE, } type_t;
void write_tlv(FILE *fp, int type, int length, void *value) {
fwrite(fp, &type, sizeof(type));
fwrite(fp, &length, sizeof(length));
fwrite(fp, value, length);
}

int arg_1 = 1;
write_tlv(fp, INT_TYPE, sizeof(arg_1), &arg_1);
tzcherish 2009-11-16
  • 打赏
  • 举报
回复
to whg01
好的,我试试看。。O(∩_∩)O~
tzcherish 2009-11-16
  • 打赏
  • 举报
回复
to Wolf0403
谢谢回复O(∩_∩)O~
不过我得先研究下TLV。。
whg01 2009-11-15
  • 打赏
  • 举报
回复
用scanf读取,应该还好。
tzcherish 2009-11-15
  • 打赏
  • 举报
回复
to whg01

呵呵,知道了。。。这个格式是比较简单,但读写的时候,可能代码简单却繁琐。。。
没有更好的方法了么?
whg01 2009-11-14
  • 打赏
  • 举报
回复
自己定义格式未必操作方便,因为格式的定义、读写函数都要你自己处理。但速度应该会很快。
whg01 2009-11-14
  • 打赏
  • 举报
回复
反正都是你自己的程序读、写文件。所以可以用最简单的格式:

机器参数区:
参数1
参数1.1 参数1.2 ...
参数2
....
计量参数区:
参数1.1 参数1.2 ...
参数2
....

tzcherish 2009-11-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 whg01 的回复:]
自己定义格式未必操作方便,因为格式的定义、读写函数都要你自己处理。但速度应该会很快。

[/Quote]
速度很快,这点很好。
我想自己设计一个文件格式。
那根据我的需求,如何自定义文件格式会比较好呢。。。能否给点思路和设计方法?
tzcherish 2009-11-13
  • 打赏
  • 举报
回复
up
tzcherish 2009-11-12
  • 打赏
  • 举报
回复
感谢大虾们的答复!
By the way . 我要是自定义文件格式,会不会比xml更方便操作呢?

在这里我表述一下需求:
参数种类有:机器参数,剂量参数等大概有6种参数。
其中,机器参数等每种参数又包含若干参数,参数类型可能各不一样。
参数实现版本控制,修改前将所有参数备份到文件中,同时备份版本号和修改日期。并为当前的版本生成一个新的版本号。

自定义文件格式,要能方便修改参数,读写文件。
大虾们,能给点意见么?
clhposs 2009-11-12
  • 打赏
  • 举报
回复
据说以前是用配置文件
现在是用xml
tzcherish 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 whg01 的回复:]
文件不能直接打开查看指的是什么?只能用你自己写的工具看吗?
用6楼的建议,使用xml。然后对xml文件进行简单的加密或压缩即可。比如:按字节异或某个值。
xml的lib库有很多,windows、linux都有。用着也很方便。
[/Quote]
to whg01
文件不能直接打开就是不能用txt打开查看,或者打开是乱码即可。
呵呵,谢谢答复O(∩_∩)O~
whg01 2009-11-12
  • 打赏
  • 举报
回复
文件不能直接打开查看指的是什么?只能用你自己写的工具看吗?
用6楼的建议,使用xml。然后对xml文件进行简单的加密或压缩即可。比如:按字节异或某个值。
xml的lib库有很多,windows、linux都有。用着也很方便。
tzcherish 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yutaooo 的回复:]
我想,LZ的参数是相对复杂的。基于key,value这种形式的配置文件恐怕是不适合的。这里建议2种方案。

1. 建立基于XML的配置文件。优点是便于修改参数。
2. 建立基于动态链接库的方式。结合C++多态的特点。每个动态链接库实现一个特定版本的参数集合。
[/Quote]

to yutaooo
谢谢答复。。。O(∩_∩)O~
tzcherish 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lylm 的回复:]
文件格式没那么严格,根据自己需要定吧!如果要求不能直接查看的话,整成二进制的或者要有转码
[/Quote]
to lylm
你说得对,文件格式没有那么严格。。。我确实是要根据自己的需要来自定义文件格式。。。现在的问题是,我要存不同种类的参数,要怎样自定义文件格式,能方便对文件进行读写。。
yutaooo 2009-11-11
  • 打赏
  • 举报
回复

我想,LZ的参数是相对复杂的。基于key,value这种形式的配置文件恐怕是不适合的。这里建议2种方案。

1. 建立基于XML的配置文件。优点是便于修改参数。
2. 建立基于动态链接库的方式。结合C++多态的特点。每个动态链接库实现一个特定版本的参数集合。
lylm 2009-11-11
  • 打赏
  • 举报
回复
文件格式没那么严格,根据自己需要定吧!如果要求不能直接查看的话,整成二进制的或者要有转码
kouwenlong 2009-11-11
  • 打赏
  • 举报
回复
.ini
tzcherish 2009-11-11
  • 打赏
  • 举报
回复
up
tzcherish 2009-11-11
  • 打赏
  • 举报
回复
to xingzhe2001

感谢你的回答。。。

项目中有很多种类的参数,比如机械参数,物理参数等,其中每种参数(如机械参数)中又有很多参数。。
如何自定义一种文件格式,能方便文件的读写呢?
加载更多回复(1)

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧