91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

用c++的文件流加map結(jié)構(gòu)實(shí)現(xiàn),支持讀取多個(gè)配置文件,用逗號(hào)作為注釋 【】為里面寫table名 table里面為key = value形式,可自行擴(kuò)展功能

資源截圖

代碼片段和文件信息

#include
#include
#include
#include“LoadConfig.h“

LoadConfig::LoadConfig()
{
m_Config.clear();
}

LoadConfig::~LoadConfig()
{

}

int?LoadConfig::LoadnewConfig(const?char*?filename)
{
fstream?inFile(filename);
if?(!inFile.is_open())
{
return?ECR_FILE_OPENFAIL;
}
Confs::iterator?itconf?=?m_Config.find(filename);
if?(itconf?!=?m_Config.end())
{
return?ECR_OK;
}

Keys?myKey;
m_Config.insert(Confs::value_type(filename?myKey));
Keys&?myKeyTmp?=?m_Config[filename];

int?line_count?=?0;
string?inbuf?subbuf;
string?sValue?=?““;
int?nRet?=?0;

while?(!inFile.eof())
{
getline(inFile?inbuf);
if?(inbuf.length()?>?0?&&?inbuf[0]?==?‘;‘)
continue;
line_count++;
size_t?last_pos?=?inbuf.find_last_of(“\r\n“);
if?(last_pos?!=?string::npos)
{
subbuf?=?inbuf.substr(0?last_pos);
}
else
{
subbuf?=?inbuf;
}

nRet?=?ParseLine(myKeyTmp?sValue?subbuf);
if?(nRet)
{
return?nRet;
}
}
return?ECR_OK;
}

int?LoadConfig::ParseLine(Keys&?key?string&?value?string?Line)
{
size_t?first?=?0?last?=?0;

Trim(Line?“?\t\r\n“);

//?分析是否為注釋行?以#為注釋
first?=?Line.find_first_of(“#“);
if?(first?!=?(string::npos))
{
Line?=?Line.substr(0?first);
}

if?(Line.empty())
{
return?ECR_OK;
}

last?=?Line.rfind(‘]‘);
if?(Line[0]?==?‘[‘?&&?last?!=?(string::npos))
{

//新的一節(jié)
value?=?Line.substr(1?last?-?1);

transform(value.begin()?value.end()?value.begin()?tolower);
Values?empty;
key.insert(Keys::value_type(value?empty));
return?ECR_OK;
}
if?(value.empty())
{
return?ECR_PARSELINE_FAIL;
}
//配置一項(xiàng)
first?=?Line.find(‘=‘);
if?(first?==?string::npos)
{
return?ECR_PARSELINE_FAIL;
}

string?name??=?Line.substr(0?first);
string?strvalue?=?Line.substr(first?+?1?string::npos);

Trim(name?“\t\r\n“);
Trim(strvalue?“\t\r\n“);
transform(name.begin()?name.end()?name.begin()?tolower);

if?(name.empty())
{
return?ECR_PARSELINE_FAIL;
}

Values&?ValueTmp?=?key[value];
ValueTmp.insert(Values::value_type(name?strvalue));
return?ECR_OK;
}

string?LoadConfig::Trim(string&?line?const?char*?trim)
{
size_t?first?=?0?last?=?0;
first?=?line.find_first_not_of(trim);
last?=?line.find_last_not_of(trim);
if?(first?==?string::npos?||?last?==?string::npos)
{
line?=?““;
}
else
{
line?=?line.substr(first?last?-?first?+?1);
}

return?line;
}

void?LoadConfig::printfAllConf()
{
for?(Confs::iterator?confit?=?m_Config.begin();?confit?!=?m_Config.end();?confit++)
{
printf(“file----------------------%s--------------------------\n\n“?confit->first.c_str());
for?(Keys::iterator?keyit?=?confit->second.begin();?keyit?!=?confit->second.end();?keyit++)
{
printf(“key------------[%s]-------------\n“?keyit->first.c_str());
for?(Values::iterator?valueit?=?keyit->second.begin();?valueit?!=?keyit->second.end();?valueit++)

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-17?20:58??loadConfig\
?????目錄???????????0??2019-07-17?20:58??loadConfig\.vs\
?????目錄???????????0??2019-07-17?20:58??loadConfig\.vs\loadConfig\
?????目錄???????????0??2019-07-17?21:30??loadConfig\.vs\loadConfig\v15\
?????文件???????44032??2019-07-17?21:31??loadConfig\.vs\loadConfig\v15\.suo
?????文件?????6062080??2019-07-17?21:31??loadConfig\.vs\loadConfig\v15\Browse.VC.db
?????目錄???????????0??2019-07-17?20:59??loadConfig\.vs\loadConfig\v15\ipch\
?????目錄???????????0??2019-07-17?21:01??loadConfig\.vs\loadConfig\v15\ipch\AutoPCH\
?????目錄???????????0??2019-07-17?21:01??loadConfig\.vs\loadConfig\v15\ipch\AutoPCH\4e1f150a1da45b37\
?????文件????35127296??2019-07-17?21:14??loadConfig\.vs\loadConfig\v15\ipch\AutoPCH\4e1f150a1da45b37\MAIN.ipch
?????目錄???????????0??2019-07-17?21:30??loadConfig\.vs\loadConfig\v15\ipch\AutoPCH\68434dcf41aaabe0\
?????文件????39256064??2019-07-17?21:30??loadConfig\.vs\loadConfig\v15\ipch\AutoPCH\68434dcf41aaabe0\LOADCONFIG.ipch
?????目錄???????????0??2019-07-17?21:30??loadConfig\Debug\
?????文件??????353792??2019-07-17?21:29??loadConfig\Debug\loadConfig.exe
?????文件?????2590904??2019-07-17?21:29??loadConfig\Debug\loadConfig.ilk
?????文件?????5574656??2019-07-17?21:29??loadConfig\Debug\loadConfig.pdb
?????文件??????????56??2018-08-24?20:57??loadConfig\Debug\text.ini
?????文件??????????47??2019-07-17?21:28??loadConfig\Debug\text2.ini
?????目錄???????????0??2019-07-17?21:28??loadConfig\loadConfig\
?????文件?????8847360??2018-08-28?17:29??loadConfig\loadConfig.sdf
?????文件?????????976??2018-08-24?16:38??loadConfig\loadConfig.sln
?????文件???????33792??2018-08-28?17:29??loadConfig\loadConfig.v12.suo
?????目錄???????????0??2019-07-17?21:29??loadConfig\loadConfig\Debug\
?????文件?????????793??2018-08-27?12:21??loadConfig\loadConfig\Debug\loadConfig.Build.CppClean.log
?????文件?????????113??2019-07-17?21:29??loadConfig\loadConfig\Debug\loadConfig.log
?????文件?????3267891??2019-07-17?21:29??loadConfig\loadConfig\Debug\LoadConfig.obj
?????目錄???????????0??2019-07-17?21:29??loadConfig\loadConfig\Debug\loadConfig.tlog\
?????文件????????2762??2019-07-17?21:29??loadConfig\loadConfig\Debug\loadConfig.tlog\cl.command.1.tlog
?????文件???????40362??2019-07-17?21:29??loadConfig\loadConfig\Debug\loadConfig.tlog\CL.read.1.tlog
?????文件????????2062??2019-07-17?21:29??loadConfig\loadConfig\Debug\loadConfig.tlog\CL.write.1.tlog
?????文件????????2648??2019-07-17?21:29??loadConfig\loadConfig\Debug\loadConfig.tlog\link.command.1.tlog
............此處省略17個(gè)文件信息

評論

共有 條評論

相關(guān)資源