VC读取和分析格式化文本配置文件
2012/6/13 11:26:00 请友读忠(更多) E界MRP开发下载网 316阅 欢迎进入C/C++编程社区论坛,与300万技术人员互动交流 >>进入大多数的应用程序都有需要配置的参数,配置参数的保存有多种方法,比如采用数据库保存、二进制文件保存、格式化的文本文件保存,各有优缺点,对于一般小的安全性要求不高应用程序,推荐采用格式化文本文件保存方式,这样可以节约编辑修改的界面编程,使用记事本程序编辑即可。早期的windows就是采用的INI格式文本文件。现在很多应用程序包括大型的软件也还在采用格式化文本文件保存配置参数,比如BentelyMicroStationGIS平台GEOGRAPHICS8.0。
本文给出的就是利用VC来读取和分析配置文本文件,这是笔者这消防监控系统远程终端软件使用的方法。同时给出一个C++类来封装配置文本文件的读取分析。
下面是我采用的配置文件的例子,包含单个参数定义,表格参数定义,注释:
//协议名称:TL
//工程:SQ
//配置人:JY
DEFINE_BEGIN//以下为常量定义
//通信参数
@COM_PORT\\\\.\\COM1//COM口
@COM_BAUDRATE1200//波特率
@COM_BITSIZE8//数据位numberofbits/byte,4-8
@COM_STOPBIT0//0,1,2对应1,1.5,2
@COM_PARITY0//0-4对应no,odd,even,mark,space
@STATIONNO0//终端号
@TCPIP_SERVERIP192.168.0.10//服务器IP地址
@TCPIP_PORTNO3024//端口
DEFINE_END
TABLE_BEGIN//表格
//编号识别字符串
//例子如下
0IonDetector,ALU1,L1S43//测量台2#离子烟感探测器报警
1ThermalDet,ALU1,L1S39//值班室温感探测器报警
TABLE_END
语法解释:
//单行注释
DEFINE_BEGIN单个参数定义的开始标记
DEFINE_END单个参数定义的结束标记
TABLE_BEGIN表格参数开始标记
TABLE_END表格参数结束标记
单个参数的配置:
每个参数一行:以空格、TAB制表符作为分隔,注释可选,每行结束后有Enter键换行。
表格参数配置:第一列为数字编号,作为ID用,第一列和第二列之间采用空格、TAB制表符作为分隔,其他列之间采用’,’逗号、空格、TAB制表符分隔,因此从第二列起,字符串中间夹的空格是有效字符。比如上面例子中的第一行解释如下:
\“0\“,\“IonDetector\“,\“ALU1\“,\“L1S43\“
同样,表格参数也是每行有Enter键换行。
下面给出一个C++类来完成这个格式的文本配置读取和分析。
规模:
文本文件的大小:<48kbytes
单个参数定义个数:不限
表格参数定义:100行X4列
这些规模大小可以修改下面的宏定义来满足你的需要
defineTABLE_MAXROW100
defineTABLE_MAXCOL5//含索引ID列
typedefstruct{
intnID;
*s[TABLE_MAXCOL-1][64];
}TAG_TABLEREC,*LPTABLEREC;
classCDataTxt
{
public:
CDataTxt();
“CDataTxt();
CStringm_szPath;//配置文件全路经名
BOOLRead();//读入文件 [Page]
BOOLGetDefine(LPCTSTRlpszName,CString&szVal);//获取定义
//{{TABLE
TAG_TABLERECm_Table[TABLE_MAXROW];
intm_nRows;
//}}
发表评论