C语言编写读取配置文件程序
2013-02-26 10:39
267 查看
#include "readconf.h" CONFIGURE *GetConfData() { CONFIGURE *pConf; pConf = (CONFIGURE*)malloc(sizeof(CONFIGURE)); memset(pConf, 0x0, sizeof(CONFIGURE)); //InitialConf(pConf); if( access("configfile",F_OK)==-1 ) return NULL; else ReadConf("configfile", pConf); return pConf; } int InitialConf(CONFIGURE *pConf) { snprintf(pConf->SampDictPathName, sizeof(pConf->SampDictPathName), "/home/raohl/office/officesrc/sample"); snprintf(pConf->LogPathName, sizeof(pConf->LogPathName), "/home/raohl/office/scws/libscws/log"); snprintf(pConf->NewSampleName, sizeof(pConf->NewSampleName), "/home/raohl/office/officesrc/newsamp"); snprintf(pConf->ScwsDictxdbUtf8, sizeof(pConf->ScwsDictxdbUtf8), "/usr/local/scws/etc/dict_chs_utf8.xdb"); snprintf(pConf->ScwsRuleIni, sizeof(pConf->ScwsRuleIni), "/usr/local/scws/etc/rules.utf8.ini"); snprintf(pConf->LogFileName, sizeof(pConf->LogFileName), "scws.log"); snprintf(pConf->AttrIgnore, sizeof(pConf->AttrIgnore), "~en"); pConf->SingelSampTlimit=3000; return 0; } int ReadConf(char *sFileName, CONFIGURE *pConf) { char sLine[1025], *sTmp; FILE *pFile = NULL; int n = 0; pFile = fopen(sFileName, "r"); if(!pFile) { printf("can't open the configure file!\n"); return 0; } memset(sLine,0,1025); while( fgets(sLine, sizeof(sLine), pFile) ) { sTmp = strchr(sLine, '\r'); if(!sTmp) sTmp = strchr(sLine, '\n'); if(sTmp) *sTmp = 0; sTmp = strchr(sLine, '#'); if(sTmp) *sTmp = 0; sTmp = strchr(sLine, '='); if(!sTmp) continue; *sTmp = 0; ++sTmp; if(strcasecmp(sLine, "SAMPDICT") == 0) snprintf(pConf->SampDictPathName, sizeof(pConf->SampDictPathName), "%s", sTmp); else if(strcasecmp(sLine, "LOGFILE") == 0) snprintf(pConf->LogFileName, sizeof(pConf->LogFileName), "%s", sTmp); else if(strcasecmp(sLine, "LOGPATH") == 0) snprintf(pConf->LogPathName, sizeof(pConf->LogPathName), "%s", sTmp); else if(strcasecmp(sLine, "NEWSAM") == 0) snprintf(pConf->NewSampleName, sizeof(pConf->NewSampleName), "%s", sTmp); else if(strcasecmp(sLine, "DICTXDB_UTF8") == 0) snprintf(pConf->ScwsDictxdbUtf8, sizeof(pConf->ScwsDictxdbUtf8), "%s", sTmp); else if(strcasecmp(sLine, "RULEINI") == 0) snprintf(pConf->ScwsRuleIni, sizeof(pConf->ScwsRuleIni), "%s", sTmp); else if(strcasecmp(sLine, "ATTR") == 0) snprintf(pConf->AttrIgnore, sizeof(pConf->AttrIgnore), "%s", sTmp); else if(strcasecmp(sLine, "TLIMIT") == 0) { n = 0; sscanf(sTmp, "%d", &n); if(n > 0) pConf->SingelSampTlimit = n; } } fclose(pFile); return 0; } int ShowConf(CONFIGURE *pConf) { if (pConf != NULL) { printf("SampDictPathName:%s\n",pConf->SampDictPathName); printf("LogPathName:%s\n",pConf->LogPathName); printf("LogFileName:%s\n",pConf->LogFileName); printf("NewSampleName:%s\n",pConf->NewSampleName); printf("ScwsDictxdbUtf8:%s\n",pConf->ScwsDictxdbUtf8); printf("ScwsRuleIni:%s\n",pConf->ScwsRuleIni); printf("AttrIgnore:%s\n",pConf->AttrIgnore); printf("SingelSampTlimit:%d\n",pConf->SingelSampTlimit); } else { printf("CONFIGURE IS NULL!\n"); } return 0; }配置文件格式:SAMPDICT=/home/raohl/office/officesrc/sample
相关文章推荐
- ini 配置文件读取程序(C语言)
- c++ 编写程序开机自动启动,读取配置文件问题
- (1) 写一个 Properties 格式的配置文件,配置类的完整名称。 * (2) 写一个程序,读取这个 Properties 配置文件,获得类的完整名称并加载这个类,用 反射 的方式运行
- winform程序读取和改写配置文件App.config元素的值
- Unity_ini配置文件应用(用于读取或写入程序设置)
- 网上找的c语言读取配置文件
- 读取配置文件的java程序
- 读取到配置文件的C语言的接口实现
- c#读取配置文件 程序的App.config
- c语言中,如何用多个文件编写程序
- web工程中在非servlet程序中读取配置文件
- C语言读取及修改简单配置文件内容
- C语言:编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现
- C++编写Config类读取配置文件
- 读取配置文件[方式一]之纯C语言实现
- 一起谈.NET技术,asp.net程序来读取多语言版本Ini配置文件
- 编写一个文件,读取 src 下面day12包 下面的my.properties 文件,文件内容如下, className=day12.User 结合 IO、反射知识,完成 配置文件中对象的创建和方法调用。并编写方法,列举出 Student 类中所有的属性、
- 自己编写的properties配置文件读取工具,备忘
- 编写一个程序,它打开一个文本文件,逐个字符地读取该文件,直到到达文件末尾,然后指出该文件中包含多少个字符
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符