我设计了一种配置文件

linxren 2011-05-06 05:08:18
以前写软件写配置文件,基本上都是很简单的方式,例如 xxx = xxxx;后来,写的软件复杂了,配置的文件也会变得很复杂。用xml文件看起来又很累,所以自己设计了一种配置文件的格式。

配置文件包含两个部分,包括定义和赋值两个部分。
1. 定义,用户可以根据需求定义类型,定义的格式如下:
typename "(" typename "." fieldname, ... ")" [varname] ";"

例如:
color(var.r, var.g, var.b); //定义颜色类型
font(var.font, var.size, var.b, var.u, var.i ); //定义字体类型
keys(color.cl, font.ft, var..kw ); //定义关键字类型, .. 表示一个集合
keytabs( keys..kw )syntax, syntax2; //定义语法高亮类型,并定义了两个变量


2. 赋值,规则为,如果是一个集合,必须用{}括起来,其他的用,分隔。

例如:
syntax = { 128,164,255,宋体,29,b1,u,i,{int,double,char,long,unsigned,float},
244,444,444,宋体,29,b2,u,i,{define},
244,444,444,宋体,29,b3,u,i,{if,else,while,for},
};

syntax2 ={ 128,164,255,asdfasd,29,b1,u,i,{int,double,char,long,unsigned,float},
244,444,444,asd,29,b2,u,i,{define},
};

3. 我实现了两个功能。

a. 获取变量的值,例如 cfg_value( "syntax.kw[1].ft.b" ); 可以得到"b2"字串。
b. 获取集合的个数, 例如 cfg_size( "syntax.kw" );将得到3, cfg_size( "syntax.kw[2].kw" );将得到4。

...全文
155 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
一只牛_007 2011-05-08
  • 打赏
  • 举报
回复
独创精神。顶一个
svtanto 2011-05-07
  • 打赏
  • 举报
回复
XML还是不错的,设计配置文件不在于格式,重点在于唯一性,换句话说,解析XML已经标准化,我们开发时候认为不会出错,比如XML的节点的内容中有XML分隔符也能正常处理。自己设计的格式不够严谨。
linxren 2011-05-07
  • 打赏
  • 举报
回复
最要是它能够跟C一样赋值,读取值的时候,也可以跟C一样。
跟结构体和数组一样,cfg_value( "syntax.kw[1].ft.b" ); 所以配置文件可以保存很复杂的配置,而且程序也很方便读取
jernymy 2011-05-06
  • 打赏
  • 举报
回复
支持楼主的设计
xspace_time 2011-05-06
  • 打赏
  • 举报
回复
看部懂,还是传统的容易学习吧
hzc543806053 2011-05-06
  • 打赏
  • 举报
回复
不错。。。。。。。
Meteor_Code 2011-05-06
  • 打赏
  • 举报
回复
建议lz使用lua语言设计配置文件,lua可以方便的内嵌到c/c++语言中,所以可以向执行脚本一样读配置
愤怒的小鸟就是用这种方法读的配置文件
http://download.csdn.net/source/1439174
我这里有他的代码以及程序和库,他很小
快来下载吧,下了我就有积分了
bdmh 2011-05-06
  • 打赏
  • 举报
回复
挺好,自己用着舒服就行了
luciferisnotsatan 2011-05-06
  • 打赏
  • 举报
回复
只要你自己觉得看起来舒服就行了。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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