1
0
This commit is contained in:
flx5
2015-03-11 04:14:17 +01:00
parent ce6219530a
commit d130696e95
10 changed files with 74 additions and 13 deletions

View File

@@ -140,6 +140,45 @@ AStringVector StringSplit(const AString & str, const AString & delim)
AStringVector StringSplitWithQuotes(const AString & str, const AString & delim)
{
AStringVector results;
size_t cutAt = 0;
size_t Prev = 0;
while ((cutAt = str.find_first_of(delim, Prev)) != str.npos)
{
AString current = str.substr(Prev, cutAt - Prev);
if (current.at(0) == '"' || current.at(0) == '\'') {
Prev += 1;
cutAt = str.find_first_of(current.at(0), Prev);
if (cutAt != str.npos) {
current = str.substr(Prev, cutAt - Prev);
cutAt += 1;
}
}
results.push_back(current);
Prev = cutAt + 1;
}
if (Prev < str.length())
{
AString current = str.substr(Prev);
if (current.length() >= 2 && (current.front() == '"' || current.front() == '\'') && current.front() == current.back()) {
current = current.substr(1, current.length() - 2);
}
results.push_back(current);
}
return results;
}
AStringVector StringSplitAndTrim(const AString & str, const AString & delim)
{