更新创建配置文件

master
brisk 2014-04-17 14:16:52 +08:00
parent a5825f42fb
commit 0fea59827c
4 changed files with 26 additions and 5 deletions

View File

@ -17,11 +17,13 @@ int main(int argc,char **argv)
//成功时返回0出错时返回错误代码
//使用conf_error函数可打印错误代码的信息
conf_insert(conf,"arg1","abc","这是一个测试文件\n\n单个参数");
conf_insert(conf,NULL,NULL,"这是一个测试文件\n");
conf_insert(conf,"arg1","abc","单个参数");
conf_insert(conf,"arg2","abc,def","多个参数");
conf_insert(conf,"arg3","\'abc def\'","空白符");
conf_insert(conf,"arg4","\"abc \' def\"","特殊符号");
conf_insert(conf,"arg5","\"abc,def\",\"#this is value\",hello","多参数,特殊符号\n\n文件结束");
conf_insert(conf,"arg5","\"abc,def\",\"#this is value\",hello\n","多参数,特殊符号");
conf_insert(conf,NULL,NULL,"文件结束");
//保存配置文件
conf_save(conf);

14
example/newrc Normal file
View File

@ -0,0 +1,14 @@
#这是一个测试文件
#单个参数
arg1 = abc
#多个参数
arg2 = abc,def
#空白符
arg3 = 'abc def'
#特殊符号
arg4 = "abc ' def"
#多参数,特殊符号
arg5 = "abc,def","#this is value",hello
#文件结束

View File

@ -126,6 +126,7 @@ CONF_CREATER *conf_creater_new(const char *path)
return NULL;
}
creater->len=0;
creater->key=NULL;
creater->value=NULL;
creater->note=NULL;
@ -138,8 +139,9 @@ int conf_insert(CONF_CREATER *creater,char *key,char *value,char *note)
//结点
CONF_CREATER *temp;
++creater->len;
//如果是第一个参数,则直接放入
if(creater->key == NULL)
if(creater->len == 1)
{
creater->key=key;
creater->value=value;
@ -172,7 +174,7 @@ int conf_save(CONF_CREATER *creater)
CONF_CREATER *head=creater;
// int i;
if(creater->key == NULL)
if(creater->len == 0)
return CONF_NO_DATA;
while(creater != NULL)

View File

@ -22,11 +22,14 @@
#define CONF_VALUE_ERR -5 //值错误
//保存配置文件数据结构
//value为键值对数据结构
//len为当前参数个数
//key为键
//value值
//note为注释
typedef struct creater
{
FILE *fp;
int len;
char *key;
char *value;