配置文件类设计思路是什么,配置文件类设计思路的软件

  配置文件类设计思路是什么,配置文件类设计思路的软件

  私藏项目实操分享

  配置文件读取思路(CConfig类):配置文件读取应该在程序的开始进行初始化,从配置文件中读取程序的相关配置和用户自定义的信息。如:程序的进程的启动个数、每个进程应该启动的线程数的个数、程序在Linux操作系统操作系统中是否以守护进程方式进行启动等。配置文件的设计应该具有美观、整洁等特点。

  以#开始的每一行配置应该当作提示内容,在读取时应该直接跳过当读取到"[" 符号时,应该进行跳过方便我们对配置文件的分组其次应该注意到对空格的过滤,防止空格对我们读取进行干扰配置类的运行思路:代码如下(含详细注释):

  /*

  *CConfig.h

  */

  #包括输入输出流

  #包含地图

  CConfig类

  {

  公共:

  //配置文件的路径

  CConfig(STD:string filename= test。conf’);

  ~ CConfig(void);

  //初始化配置

  int init config();

  //获取配置参数

  STD:string get param(STD:string param);

  //设置配置参数

  STD:string set param();

  私人:

  bool file _ isok//文件是否读取成功

  int param handle(STD:string strline);//处理每一行的参数

  公共:

  std:map std:string,STD:string param store;//保存所有参数

  标准:字符串文件名;//文件名

  };/*

  * CConfig.cpp

  */

  #include stdafx.h

  #include Config.h

  #包括文件操作

  #包含字符串

  #包括字符串

  CConfig:CConfig(STD:string filename):file _ isok(false)

  {

  STD:if流FP;

  fp.open(filename.c_str(),STD:IOs:in);

  if(fp.is_open()){ //验证文件是否可以打开,并进行标记

  file _ isok=true

  this- filename=文件名;

  }

  }

  CConfig:~CConfig(void)

  {

  }

  STD:string CConfig:get param(STD:string param){

  对于(自动pa : paramstore){

  如果(参数优先==参数)

  返回pa .秒

  }

  返回"";

  }

  int CConfig:InitConfig(){

  如果(!file _ isok)return-1;//初始化失败

  STD:if流FP;

  fp.open(filename.c_str(),STD:if stream:in);

  如果(!fp){

  标准* cerr 文件读取出错STD:endl;

  return-1;

  }

  字符串[100];

  while(fp.getline(str,100)){ //读取每一行的配置文件

  无符号整数开始,结束

  for(start=0;start strlen(str);开始){

  if(str[start]== str[start]== \ r str[start]== \ n ){//过滤空行

  开始;

  }否则{

  打破;

  }

  }

  for(end=strlen(str)-1;结束0;end - ){ //去掉末尾的空格和不可见字符

  if(str[end]== str[end]== \ r str[end]== \ n ){

  end-;

  }否则{

  打破;

  }

  }

  如果(开始结束){

  std:string strs(str,start,end-start 2);

  参数句柄(strs);

  }

  }

  if(paramstore.size()==0){

  标准* cerr 未读取到任何参数STD:endl;

  return-1;

  }

  返回0;

  }

  int CConfig:param handle(STD:string strline){//跳过#开头和[开头的组标记

  if(strline.empty())返回-1;

  int flageq=0;

  for(int I=0;我坚持。size();i ){

  if(strline[0]== # strline[0]==[)返回0;

  if(strline[i]===){

  flageq=I;

  打破;

  }

  }

  std:string key(strline,0,flageq);

  标准:字符串值(strline,flageq 1,strline。size()-flageq);

  参数存储。insert(STD:make _ pair(key,value));

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: