标准C语言,修改配置文件

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:33:50
编写一个修改配置文件的函数,调用此函数后能完成如下操作:
1、修改配置文件字段值。
2、添加新字段。
3、忽略#号注释项。
如配置文件config.ini内容如下:
[ccddt]
ver=1.0.2
#status=1
status=2
[system]
ver=2.7.2
root=/home/linux
调用函数后,将配置文件字段与实参比较。若存在此字段,则将此字段与实参比较。若不同,则修改配置文件中字段值。若相同,则忽略。若不存在此字段,则添加此字段。

我定义的函数原型是 void modify_ini(char * ini_name, char * pre_key, char * key, char * key_value);
其中,ini_name为配置文件的名字,
pre_key为配置文件中[]部分,如以下配置文件中的[CCDDT]和[SYSTEM],
key为[]下边的部分,如以下配置文件中的VER, STATUS, ROOT等,
key_value为key字段的值,如以下配置文件中VER的值1.0.2, STATUS的值2.

现在的问题是
1。现在能实现修改配置文件中已存在的字段值,比如[CCDDT]下的VER值改成1.0.3,但是如果改成1.1,原来的.2覆盖不了。如何能将此行删除,然后写如新数据而不影响其他
带空格的话,以后改此字段 仍然是个问题

}

在1.1后面带空格
只要该行数据的最大长度确定,在你这行数据确定后,不足部分全部用空格覆盖。
比如ver=1.0.2现在的长度是9个字符,如果我确定这行内容不会超过12个字符,那后面的内容我可以全用空格覆盖,最后只要加个回车即可。

不知道你所谓的以后改不方便指什么

呃。。感觉全部读到内存会方便一些
要修改的话 在内存里改好再全写回来

是否能加些分.估计写好要二.三个小时.
你是想做加load=*.exe 吧.哈哈.
加分找我.