Commit 3d3efe7c authored by Andrey Morozov's avatar Andrey Morozov

fixed sub algorithm in CommandLineParser

parent 5e831f7f
...@@ -51,30 +51,33 @@ void helpParser() ...@@ -51,30 +51,33 @@ void helpParser()
vector<string> split_string(const string& str, const string& delimiters) vector<string> split_string(const string& str, const string& delimiters)
{ {
vector<string> res; vector<string> res;
string::size_type lastPos = str.find_first_not_of(delimiters, 0);
string::size_type pos = str.find_first_of(delimiters, lastPos);
while (string::npos != pos || string::npos != lastPos)
{
res.push_back(str.substr(lastPos, pos - lastPos)); string split_str = str;
lastPos = str.find_first_not_of(delimiters, pos); int pos_delim = split_str.find(delimiters);
if (str[pos + 1] == '|' && str[pos] == '|')
while ( pos_delim != string::npos)
{
if (pos_delim == 0)
{ {
res.push_back(""); res.push_back("");
if(str[pos + 2] == '|') split_str.erase(0, 1);
res.push_back("");
} }
if (str[pos + 1] == '\0') else
res.push_back(""); {
pos = str.find_first_of(delimiters, lastPos); res.push_back(split_str.substr(0, pos_delim));
split_str.erase(0, pos_delim + 1);
} }
pos_delim = split_str.find(delimiters);
}
res.push_back(split_str);
return res; return res;
} }
CommandLineParser::CommandLineParser(int argc, const char* const argv[], const char* keys) CommandLineParser::CommandLineParser(int argc, const char* const argv[], const char* keys)
{ {
std::string keys_buffer; std::string keys_buffer;
std::string values_buffer; std::string values_buffer;
std::string buffer; std::string buffer;
...@@ -188,8 +191,6 @@ CommandLineParser::CommandLineParser(int argc, const char* const argv[], const c ...@@ -188,8 +191,6 @@ CommandLineParser::CommandLineParser(int argc, const char* const argv[], const c
printf("The current parameter is not defined: %s\n", curName.c_str()); printf("The current parameter is not defined: %s\n", curName.c_str());
isFound = false; isFound = false;
} }
} }
bool CommandLineParser::has(const std::string& keys) bool CommandLineParser::has(const std::string& keys)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment