免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1946 | 回复: 7
打印 上一主题 下一主题

[C] 在sco unix环境下 使用c语言怎样写.ini文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-16 14:11 |只看该作者 |倒序浏览
在sco unix环境下 使用c语言怎样写.ini文件

论坛徽章:
0
2 [报告]
发表于 2003-07-16 14:21 |只看该作者

在sco unix环境下 使用c语言怎样写.ini文件

??

到了哪儿也是文件啊。
有什么不一样么?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-07-16 14:54 |只看该作者

在sco unix环境下 使用c语言怎样写.ini文件

不明白,
fopen("zhansan.init","w"

不行吗?

论坛徽章:
0
4 [报告]
发表于 2003-07-16 15:20 |只看该作者

在sco unix环境下 使用c语言怎样写.ini文件

如果想偷懒,那么可用用orient类库(我写的 ),别向我要源码


  1. orient类库中提供了ini文件接口类TIni。
  2. 配置文件操作类TIni提供了对ini文件的常用操作函数,包括读取和修改,如读取文件、保存文件、读取key值、设置key值等,同时提供了组的操作。
  3. 头文件 cini.h
  4. LoadFile(char * filename);得到文件的内容数据;对文件的操作,先在内存进行
  5. TIniSet * GetSet(char * grpname集合名称),根据名称取一个集合指针
  6. TIniSet * AddSet(char * grpname集合名称,char * comment集合注释);添加一个集合
  7. int RemoveSet (char * grpname);        函数功能:根据集合名称删除一个集合
  8. int AddItem(char * grpname,char * item条目名称,char * key条目的值,char * comment条目的注释),在集合里添加一个条目
  9. int SetKey(char * grpname,char * item,char * key);        函数功能:设置一个条目的值
  10. void RemoveKey(char * grpname,char * item,char * key);        函数功能:根据值删除一个条目
  11. void RemoveItem(char * grpname,char * item);        函数功能:根据名称删除一个条目
  12. IniItemStru * GetItem(char * grpname,char * item);        函数功能:根据名称取一个条目
  13. char * GetKey(char * grpname,char * item);        函数功能:根据名称取一个条目的值
  14. char * GetKey(char * ininame,char * grpname,char * item);        函数功能:根据名称取一个条目的值
  15. int SaveToFile(char * filename要保存的文件名);更新配置文件,将内存信息写回文件。

  16. void Exam_TIni()
  17. {
  18. TIni ini;
  19. TIniSet * set;

  20.   printf("*********************************************************************\n");
  21.   printf("* 下面是 Exam_TIni 的例子                                           *\n");
  22.   printf("*********************************************************************\n\n");
  23.   printf("TIniSet * TIni::AddSet(char * grpname,char * comment)\n");
  24.   printf("函数功能:添加一个集合\n\
  25.     传入参数:\n\
  26.       grpname: 集合名称\n\
  27.       comment: 集合注释\n\
  28.     返回参数:\n\
  29.       成功:集合指针\n\
  30.       失败:NULL\n");
  31.   set=ini.AddSet("general","系统信息");
  32.   if(set==NULL)
  33.   {
  34.     printf("add set fail\n");
  35.     return;
  36.   }
  37.   else
  38.     printf("add set ok\n\n");

  39.   printf("int TIni::AddItem(char * grpname,char * item,char * key,char * comment)\n");
  40.   printf("函数功能:在集合里添加一个条目\n\
  41.     传入参数:\n\
  42.       grpname: 集合名称\n\
  43.       item: 条目名称\n\
  44.       key: 条目的值\n\
  45.       comment: 条目的注释\n\
  46.     返回参数:\n\
  47.       成功 1\n\
  48.       失败 0\n");
  49.   if(!ini.AddItem("general","serialno","ABCDEFG","序列号"))
  50.     printf("add item fail\n");
  51.   else
  52.     printf("add item ok\n");
  53.   if(!ini.AddItem("general","resmgrnum","1","管理器数量"))
  54.     printf("add item fail\n");
  55.   else
  56.     printf("add item ok\n");
  57.   if(!ini.AddItem("general","mintermid","1000","最小终端流水"))
  58.     printf("add item fail\n");
  59.   else
  60.     printf("add item ok\n");
  61.   if(!ini.AddItem("general","maxtermid","1000","最大终端流水"))
  62.     printf("add item fail\n");
  63.   else
  64.     printf("add item ok\n\n");
  65.   set=ini.AddSet("resmgrip","资源管理器IP");
  66.   if(set==NULL)
  67.   {
  68.     printf("add set fail\n");
  69.     return;
  70.   };
  71.   set=ini.AddSet("resmgrport","资源管理器PORT");
  72.   if(set==NULL)
  73.   {
  74.     printf("add set fail\n");
  75.     return;
  76.   };

  77.   printf("int TIni::SaveToFile(char * filename)\n");
  78.   printf("函数功能:更新配置文件\n\
  79.     传入参数:\n\
  80.       filename: 要保存的文件名\n\
  81.     返回参数:\n\
  82.       0 保存失败 \n\
  83.       1 保存成功\n");
  84.   if(!ini.SaveToFile("test.ini"))
  85.     printf("save to file fail\n\n");
  86.   else
  87.     printf("save to file ok\n\n");

  88.   printf("int TIni::LoadFile(char * filename)\n");
  89.   printf("函数功能:打开配置文件\n\
  90.     传入参数:\n\
  91.       filename: 要打开的文件名\n\
  92.     返回参数:\n\
  93.       成功: 1\n\
  94.       失败: 0\n");
  95.   if(!ini.LoadFile("test.ini"))
  96.     printf("load file fail\n\n");
  97.   else
  98.     printf("load file ok\n\n");

  99.   printf("int TIni::RemoveSet(char * grpname)\n");
  100.   printf("函数功能:根据集合名称删除一个集合\n\
  101.     传入参数:\n\
  102.       grpname: 集合名称\n\
  103.     返回参数:\n\
  104.       成功:1\n\
  105.       失败:0\n");
  106.   if(!ini.RemoveSet("resmgrport"))
  107.     printf("remove set fail\n\n");
  108.   else
  109.     printf("remove set ok\n\n");

  110.   printf("int TIni::SetKey(char * grpname,char * item,char * key)\n");
  111.   printf("函数功能:设置一个条目的值\n\
  112.     传入参数:\n\
  113.       grpname: 集合名称\n\
  114.       item: 条目名称\n\
  115.       key: 条目的值\n\
  116.     返回参数:\n\
  117.       成功 1\n\
  118.       失败 0\n");
  119.   if(!ini.SetKey("general","serialno","00C6G0A162W3EUR0I024"))
  120.     printf("setkey fail\n\n");
  121.   else
  122.     printf("setkey ok\n\n");

  123.   printf("void TIni::RemoveKey(char * grpname,char * item,char * key)\n");
  124.   printf("函数功能:根据值删除一个条目\n\
  125.     传入参数:\n\
  126.       grpname: 集合名称\n\
  127.       item: 条目名称\n\
  128.       key: 条目的值\n\
  129.     返回参数:\n");
  130.   ini.RemoveKey("general","mintermid","1000");
  131.   puts("");

  132.   printf("void TIni::RemoveItem(char * grpname,char * item)\n");
  133.   printf("函数功能:根据名称删除一个条目\n\
  134.     传入参数:\n\
  135.       grpname: 集合名称\n\
  136.       item: 条目名称\n\
  137.     返回参数:\n");
  138.   ini.RemoveItem("general","maxtermid");
  139.   puts("");

  140.   printf("char * TIni::GetKey(char * grpname,char * item)\n");
  141.   printf("函数功能:根据名称取一个条目的值\n\
  142.     传入参数:\n\
  143.       grpname: 集合名称\n\
  144.       item: 条目名称\n\
  145.     返回参数:\n\
  146.       成功:条目的值\n\
  147.       失败:NULL\n");
  148.   char * ptr;
  149.   ptr=ini.GetKey("general","serialno");
  150.   if(ptr==NULL)
  151.     printf("cant get key of serialno[general]\n\n");
  152.   else
  153.     printf("get key of serialno[general] ok: '%s'\n\n",ptr);

  154.   printf("int TIni::GetItemKey(char * grpname,char * item,char * pkeyval)\n");
  155.   printf("函数功能:根据名称取一个条目的值\n\
  156.     传入参数:\n\
  157.       grpname: 集合名称\n\
  158.       item: 条目名称\n\
  159.       pkeyval: 用于存放条目值的内存指针\n\
  160.     返回参数:\n\
  161.       成功:1,同时把条目的值存放在pkeyval的内存中\n\
  162.       失败:0\n");
  163.   char sn[200];
  164.   if(!ini.GetItemKey("general","serialno",sn))
  165.     printf("cant get key of serialno[general]\n\n");
  166.   else
  167.     printf("get key of serialno[general] ok: '%s'\n\n",sn);


  168.   if(!ini.SaveToFile("test.ini"))
  169.     printf("save to file fail\n\n");
  170.   else
  171.     printf("save to file ok\n\n");
  172. };
复制代码

论坛徽章:
0
5 [报告]
发表于 2003-07-16 15:24 |只看该作者

在sco unix环境下 使用c语言怎样写.ini文件

谢谢老大

论坛徽章:
0
6 [报告]
发表于 2003-07-16 15:38 |只看该作者

在sco unix环境下 使用c语言怎样写.ini文件

http://sourceforge.net/projects/inilib/
看看是否合用。

论坛徽章:
0
7 [报告]
发表于 2003-07-16 15:47 |只看该作者

在sco unix环境下 使用c语言怎样写.ini文件

原帖由 "fieryfox" 发表:
http://sourceforge.net/projects/inilib/
看看是否合用。
   
是免费的吗?

论坛徽章:
0
8 [报告]
发表于 2003-07-16 15:50 |只看该作者

在sco unix环境下 使用c语言怎样写.ini文件

自己看不就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP