linux c++追加文件内容,Linux 上写C++ (1)——替换字串、读取配置文件

Linux 上写C++ (1)——替换字串、读取配置文件

1、替换字串

string IVR_COMMON::string_replace(string data, string Old, string New)

{                 int iPos=0;

int iOldSize=Old.size();

int iNewSize=New.size();

while((iPos=data.find(Old,iPos))!=string::npos)

{

data.replace(iPos,iOldSize,New);

iPos+=iNewSize;

}

return data;

}

1、读取配置文件

//读取日志文件,根据key得出value值,日志文件按行读取,等号前面是key,后面是value以分号结束

#是否打印日志:true打印,false不打印

------------------------配置文件-----------------------------------------------------------------

islog=true;

#充值卡充值(不用了)

IVR_1=127.0.0.1|8311|saleserv/httptran/CrmService|1024|5;

#充值卡充值201511月16日lixy13

IVR_2=127.0.0.1|8311|saleserv/httptran/CrmService|1024|5|true|IVR_ITF_CRM_PAYFEE_REG;

#积分查询接口

IVR_3=127.0.0.1|8171|scoreserv/httptran/CrmService|1024|5;

-----------------------------------------------------------------------------------

string IVR_COMMON::Readini(string filepath,string key)

{

string value=""; //返回值

string tmp="";//临时变量

string var1="";//临时变量

string strkey="";//临时变量

string tempSplit="=";//参数配置默认分隔符

string tempSplitend=";";//参数结束标记

ifstream fin(filepath.c_str());//读取配置文件

char CKey[50]="";

if(!fin)//判断是否找到配置文件

{

strcpy(CKey,key.c_str());

WriteLog("没有找到配置文件",CKey);

}

while(getline(fin,tmp))//循环按行读取

{

var1=        tmp.substr(0,1);//

if(var1!="#")//忽略#号开始的行

{

int length_field= tmp.find(tempSplit);//这行中用等号分割取出位置

strkey=tmp.substr(0,length_field);//取出键

if(strkey==key)//所取键与传入键是否相等

{

//若果相等,取出键值

value= tmp.substr(tmp.find(tempSplit)+tempSplit.size(),tmp.find(tempSplitend) -tmp.find(tempSplit)-1);

return value;

}

}

}

return value;

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值