//suppose params are seprated by ',' static void ParseForParams(const behaviac::string& tsrc, behaviac::vector<behaviac::string>& params) { int tsrcLen = (int)tsrc.size(); int startIndex = 0; int index = 0; int quoteDepth = 0; for (; index < tsrcLen; ++index) { if (tsrc[index] == '"') { quoteDepth++; //if (quoteDepth == 1) //{ // startIndex = index; //} if ((quoteDepth & 0x1) == 0) { //closing quote quoteDepth -= 2; BEHAVIAC_ASSERT(quoteDepth >= 0); } } else if (quoteDepth == 0 && tsrc[index] == ',') { //skip ',' inside quotes, like "count, count" int lengthTemp = index - startIndex; behaviac::string strTemp = tsrc.substr(startIndex, lengthTemp); params.push_back(strTemp); startIndex = index + 1; } }//end for // the last param int lengthTemp = index - startIndex; if (lengthTemp > 0) { behaviac::string strTemp = tsrc.substr(startIndex, lengthTemp); params.push_back(strTemp); //params.push_back(strTemp); } }