bool CzString::SplitVarIndex(CzString& var, int& index, CzString& vindex) { char* pData = Data; index = -1; FindReset(); // Split string at colon char and return value after colon for (int t = 0; t < Length; t++) { if (*pData++ == ':') { var.setString(Data, t); vindex.Copy(pData, 0, Length - t - 1); if (CzString::IsNumber(*pData)) index = vindex.getAsInt(); return true; } } // No split found so just copy this string to output var = *this; return true; }
bool CzDataInput::getNextQuotedStringAsint(int *pNum) { CzString num; if (getNextQuotedString(&num)) { *pNum = num.getAsInt(); return true; } return false; }
bool CzString::SplitPropVarIndex(CzString& prop, CzString& var, int& index, CzString& vindex) { char* pData = Data; index = -1; FindReset(); // Get property int pos = StepFindIndexNoneWhiteSpace(); if (pos < 0) return false; int start_pos = 0; int len = GetNextMarkedString('[', ']', start_pos); if (len >= 0) prop.setString(Data + start_pos, len); if (StepFindIndex(1) == Length) return false; // Split string at colon char and return value after colon pData += FindIndex; for (int t = 0; t < Length - FindIndex; t++) { if (*pData++ == ':') { var.setString(Data + FindIndex, t); vindex.Copy(pData, 0, Length - t - 1); if (CzString::IsNumber(*pData)) index = vindex.getAsInt(); return true; } } // No split found so just copy out the var var.setString(Data + FindIndex, Length - FindIndex); return true; }