标准C处理类似INI配置文件的键值型文档
来源:互联网 发布:hadoop2.9.0 windows 编辑:程序博客网 时间:2024/06/05 20:13
Linux下处理配置文档经常是个让人头痛的问题, 因为它不像Win32平台有INI文件处理的API或类对象, 这样, 我们就只能以字符流的方式来分析处理了, 下面的程序段实现了一个典型的处理配置文档的方法...
/*
读取并处理键值型文档
*/
char name[20];
byte age;
char sex[8];
int PropertyConfigurator (char *configFilename)
{
FILE* fp;
int i;
char line[256];
char* pstr=(char*)NULL;
if((fp = fopen(configFilename, "r")) == (FILE*)NULL) // configFileName是欲处理的配置文件名
{
printf("Can not open configfile/n"); // 是配置文档中的注释行
return 0;
}
else
{
while(fgets(line, 256, fp) !=(char*)NULL)
{
DeteteWhiteSpace(line); // Delete spaces
if(line[0] == '#'); // '#' 是配置文档中的注释行
continue;
strupr(line); // Convert character to lowercase.
if(pstr = strstr(line, "NAME")) // Process key-value
{
pstr = strstr(line, '=');
DeteteWhiteSpace(++pstr);
strcpy(name, pstr);
}
if(pstr = strstr(line, "AGE")) // Process key-value
{
pstr = strstr(line, '=');
DeteteWhiteSpace(++pstr);
age = atoi(pstr);
}
else if((pstr = strstr(line, "SEX"))) // Process key-value
{
pstr=strstr(line, '=');
DeteteWhiteSpace(++pstr);
strcpy(sex, pstr);
}
}
}
fclose(fp);
return 1;
}
/*
标准C不提供的两个函数
itoa 将数字字符串转换成数值类型
strupr 将字符串中的字符转换成大写
*/
char* itoa(long value, char *string)
{ // Enough for a 128 bit integer
if (string)
sprintf(string, "%d", value);
return string;
}
char* strupr(char *string)
{
if (string != NULL)
{
char *cp; // traverses string for C locale conversion */
for (cp = string; *cp; ++cp)
{
if ('a' <= *cp && *cp <= 'z')
*cp += 'A' - 'a';
}
return(string);
} //C locale
return NULL;
}
/*
附加函数
删除配置文档中的空行及空格
*/
char* DeteteWhiteSpace(char* str) // Delete space
{
char strTemp[256];
char strTemp2[256];
unsigned int i,j;
memset(strTemp, 0, 256);
strcpy(strTemp2, str);
j = 0;
if (str != NULL)
{
for(i=0; i<strlen(str); i++)
{
if (strTemp2[i] != ' ')
{
strTemp[j++] = strTemp2[i];
}
}
}
strcpy(str, strTemp);
return(str);
}
- 标准C处理类似INI配置文件的键值型文档
- 标准C处理类似INI配置文件的键值型文档
- 标准C处理类似INI配置文件的键值型文档
- MFC ini 配置文件修改和读取键值
- python ini配置文件处理
- 键值形式的文件解析api-解析类ini形式的配置文件
- C++ini读写配置文件
- 【C++】读写ini配置文件
- Python--键值对配置文件处理
- .ini配置文件的存取
- INI配置文件的格式
- ini配置文件的格式
- INI配置文件的格式
- INI配置文件的格式
- 配置文件INI的操作
- INI配置文件的格式
- INI配置文件的格式
- INI配置文件的格式
- 面试遇到的20大问题
- C#选择排序算法实现
- C#希尔排序算法实现
- [你必须知道的.NET]第十一回:参数之惑---传递的艺术(上)
- FLEX RSL应用注意事项
- 标准C处理类似INI配置文件的键值型文档
- Swill使用感受
- PIDGIN模块间通知的实现方式
- 庄子
- 人生的6条真理
- 《诗盗·望艳门山》
- 配置文件的读取,纯C代码
- c# 综合测试题
- [双语阅读]调查:法国过瘦女性比例居欧洲之首