在实际项目中,经常会把软件的某些选项写入配置文件。 Windows 平台上的 INI 文件格式简单易用,本篇文章利用《C语言面向对象编程(五):单链表实现》中实现的单链表,设计了一个“类” ini_parser 来读写 INI 格式的配置文件。
struct ini_parser 可以解析 INI 格式的字符串、文件,也可以将内存中的符合 INI 格式的数据写入文件,能够支持 Windows 、 Linux 、 Android 等多平台。目前暂不支持选项分组功能。
功能相对简单,直接看源码吧。
下面是头文件:
struct single_list;
struct ini_parser {
struct single_list * keyvalues;
int (*parse_file)(struct ini_parser *, const char * file);
int (*parse_string)(struct ini_parser *, const char *text);
char * (*value)(struct ini_parser *, const char * key);
void (*set_value)(struct ini_parser *, const char * key, const char * value);
void (*remove)(struct ini_parser *, const char *key);
int (*save_to_file)(struct ini_parser *, const char * file);
void (*deletor)(struct ini_parser *ini);
};
struct ini_parser * new_ini_parser();
struct init_parser 的声明符合我们在本系列文章中提到的面向对象框架,需要说明的是,一旦 deletor 方法被调用, ini_parser 的实例将不再允许访问。
下面是源文件:
#include "ini_parser.h"
#include <stdio.h>
#include <string.h>
struct tag_value_pair{
struct slist_node node;
char * szTag;
char * szValue;
};
typedef struct tag_value_pair tag_value;
static void _tag_value_free(struct slist_node *node)