__Array* CSVParser::parse(const char* fileName) { auto sharedFileUtils = FileUtils::getInstance(); string pathKey = sharedFileUtils->fullPathForFilename(fileName); string content = sharedFileUtils->getStringFromFile(pathKey); __String* contentStr = __String::create(content); __Array* rows = contentStr->componentsSeparatedByString("\n"); __Array* ret = __Array::createWithCapacity(rows->count()); Ref *obj = nullptr; CCARRAY_FOREACH(rows, obj) { auto fieldStr = static_cast<__String*>(obj); __Array* fields = fieldStr->componentsSeparatedByString(","); ret->addObject(fields); }
bool LDLibraryUpdateInfo::parseUpdateLine(const char *updateLine) { int partCount; char **updateParts = componentsSeparatedByString(updateLine, "\t", partCount); bool retValue = false; if (updateParts && partCount > 4) { if (stringHasPrefix(updateParts[0], "COMPLETE")) { m_updateType = LDLibraryFullUpdate; } else if (stringHasPrefix(updateParts[0], "UPDATE")) { m_updateType = LDLibraryPartialUpdate; } else if (stringHasPrefix(updateParts[0], "BASE")) { m_updateType = LDLibraryBaseUpdate; } } if (m_updateType != LDLibraryUnknownUpdate) { if (stringHasPrefix(updateParts[1], "ARJ")) { m_format = LDLibraryExeFormat; } else if (stringHasPrefix(updateParts[1], "ZIP")) { m_format = LDLibraryZipFormat; } } if (m_format != LDLibraryUnknownFormat) { m_date = copyString(updateParts[2]); } if (m_date && m_date[0]) { m_url = copyString(updateParts[3]); } if (m_url && m_url[0]) { char *spot = strrchr(m_url, '/'); if (spot) { m_name = copyString(spot + 1); spot = strchr(m_name, '.'); if (spot) { *spot = 0; } else { m_name[0] = 0; } } } if (m_name && m_name[0]) { if (sscanf(updateParts[4], "%d", &m_size) == 1) { retValue = true; } } deleteStringArray(updateParts, partCount); return retValue; }