- 论坛徽章:
- 0
|
在sco unix环境下 使用c语言怎样写.ini文件
如果想偷懒,那么可用用orient类库(我写的 ),别向我要源码
- orient类库中提供了ini文件接口类TIni。
- 配置文件操作类TIni提供了对ini文件的常用操作函数,包括读取和修改,如读取文件、保存文件、读取key值、设置key值等,同时提供了组的操作。
- 头文件 cini.h
- LoadFile(char * filename);得到文件的内容数据;对文件的操作,先在内存进行
- TIniSet * GetSet(char * grpname集合名称),根据名称取一个集合指针
- TIniSet * AddSet(char * grpname集合名称,char * comment集合注释);添加一个集合
- int RemoveSet (char * grpname); 函数功能:根据集合名称删除一个集合
- int AddItem(char * grpname,char * item条目名称,char * key条目的值,char * comment条目的注释),在集合里添加一个条目
- int SetKey(char * grpname,char * item,char * key); 函数功能:设置一个条目的值
- void RemoveKey(char * grpname,char * item,char * key); 函数功能:根据值删除一个条目
- void RemoveItem(char * grpname,char * item); 函数功能:根据名称删除一个条目
- IniItemStru * GetItem(char * grpname,char * item); 函数功能:根据名称取一个条目
- char * GetKey(char * grpname,char * item); 函数功能:根据名称取一个条目的值
- char * GetKey(char * ininame,char * grpname,char * item); 函数功能:根据名称取一个条目的值
- int SaveToFile(char * filename要保存的文件名);更新配置文件,将内存信息写回文件。
- void Exam_TIni()
- {
- TIni ini;
- TIniSet * set;
- printf("*********************************************************************\n");
- printf("* 下面是 Exam_TIni 的例子 *\n");
- printf("*********************************************************************\n\n");
- printf("TIniSet * TIni::AddSet(char * grpname,char * comment)\n");
- printf("函数功能:添加一个集合\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- comment: 集合注释\n\
- 返回参数:\n\
- 成功:集合指针\n\
- 失败:NULL\n");
- set=ini.AddSet("general","系统信息");
- if(set==NULL)
- {
- printf("add set fail\n");
- return;
- }
- else
- printf("add set ok\n\n");
- printf("int TIni::AddItem(char * grpname,char * item,char * key,char * comment)\n");
- printf("函数功能:在集合里添加一个条目\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- item: 条目名称\n\
- key: 条目的值\n\
- comment: 条目的注释\n\
- 返回参数:\n\
- 成功 1\n\
- 失败 0\n");
- if(!ini.AddItem("general","serialno","ABCDEFG","序列号"))
- printf("add item fail\n");
- else
- printf("add item ok\n");
- if(!ini.AddItem("general","resmgrnum","1","管理器数量"))
- printf("add item fail\n");
- else
- printf("add item ok\n");
- if(!ini.AddItem("general","mintermid","1000","最小终端流水"))
- printf("add item fail\n");
- else
- printf("add item ok\n");
- if(!ini.AddItem("general","maxtermid","1000","最大终端流水"))
- printf("add item fail\n");
- else
- printf("add item ok\n\n");
- set=ini.AddSet("resmgrip","资源管理器IP");
- if(set==NULL)
- {
- printf("add set fail\n");
- return;
- };
- set=ini.AddSet("resmgrport","资源管理器PORT");
- if(set==NULL)
- {
- printf("add set fail\n");
- return;
- };
- printf("int TIni::SaveToFile(char * filename)\n");
- printf("函数功能:更新配置文件\n\
- 传入参数:\n\
- filename: 要保存的文件名\n\
- 返回参数:\n\
- 0 保存失败 \n\
- 1 保存成功\n");
- if(!ini.SaveToFile("test.ini"))
- printf("save to file fail\n\n");
- else
- printf("save to file ok\n\n");
- printf("int TIni::LoadFile(char * filename)\n");
- printf("函数功能:打开配置文件\n\
- 传入参数:\n\
- filename: 要打开的文件名\n\
- 返回参数:\n\
- 成功: 1\n\
- 失败: 0\n");
- if(!ini.LoadFile("test.ini"))
- printf("load file fail\n\n");
- else
- printf("load file ok\n\n");
- printf("int TIni::RemoveSet(char * grpname)\n");
- printf("函数功能:根据集合名称删除一个集合\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- 返回参数:\n\
- 成功:1\n\
- 失败:0\n");
- if(!ini.RemoveSet("resmgrport"))
- printf("remove set fail\n\n");
- else
- printf("remove set ok\n\n");
- printf("int TIni::SetKey(char * grpname,char * item,char * key)\n");
- printf("函数功能:设置一个条目的值\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- item: 条目名称\n\
- key: 条目的值\n\
- 返回参数:\n\
- 成功 1\n\
- 失败 0\n");
- if(!ini.SetKey("general","serialno","00C6G0A162W3EUR0I024"))
- printf("setkey fail\n\n");
- else
- printf("setkey ok\n\n");
- printf("void TIni::RemoveKey(char * grpname,char * item,char * key)\n");
- printf("函数功能:根据值删除一个条目\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- item: 条目名称\n\
- key: 条目的值\n\
- 返回参数:\n");
- ini.RemoveKey("general","mintermid","1000");
- puts("");
- printf("void TIni::RemoveItem(char * grpname,char * item)\n");
- printf("函数功能:根据名称删除一个条目\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- item: 条目名称\n\
- 返回参数:\n");
- ini.RemoveItem("general","maxtermid");
- puts("");
- printf("char * TIni::GetKey(char * grpname,char * item)\n");
- printf("函数功能:根据名称取一个条目的值\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- item: 条目名称\n\
- 返回参数:\n\
- 成功:条目的值\n\
- 失败:NULL\n");
- char * ptr;
- ptr=ini.GetKey("general","serialno");
- if(ptr==NULL)
- printf("cant get key of serialno[general]\n\n");
- else
- printf("get key of serialno[general] ok: '%s'\n\n",ptr);
- printf("int TIni::GetItemKey(char * grpname,char * item,char * pkeyval)\n");
- printf("函数功能:根据名称取一个条目的值\n\
- 传入参数:\n\
- grpname: 集合名称\n\
- item: 条目名称\n\
- pkeyval: 用于存放条目值的内存指针\n\
- 返回参数:\n\
- 成功:1,同时把条目的值存放在pkeyval的内存中\n\
- 失败:0\n");
- char sn[200];
- if(!ini.GetItemKey("general","serialno",sn))
- printf("cant get key of serialno[general]\n\n");
- else
- printf("get key of serialno[general] ok: '%s'\n\n",sn);
- if(!ini.SaveToFile("test.ini"))
- printf("save to file fail\n\n");
- else
- printf("save to file ok\n\n");
- };
复制代码 |
|