Ejemplo n.º 1
0
	bool CSVData::loadFromTextReader(TextReader& reader, const StringView separators, const StringView quotes, const StringView escapes)
	{
		if (!reader)
		{
			return false;
		}

		const boost::escaped_list_separator<char32> separator(escapes.to_string(), separators.to_string(), quotes.to_string());

		String str;

		m_data.clear();

		while (reader.readLine(str))
		{
			try
			{
				const boost::tokenizer<boost::escaped_list_separator<char32>, String::const_iterator, String> tokens(str, separator);

				m_data.emplace_back(tokens.begin(), tokens.end());
			}
			catch (boost::exception&)
			{
				str.replace(U"\\", U"\\\\");

				const boost::tokenizer<boost::escaped_list_separator<char32>, String::const_iterator, String> tokens(str, separator);

				m_data.emplace_back(tokens.begin(), tokens.end());
			}
		}

		return true;
	}
Ejemplo n.º 2
0
void DescrTextChunk::read(TextReader& reader)
{
    std::string offsets;
    reader.readLine(offsets);

    std::string frames;
    reader.readLine(frames);

	uint32_t numLines = 0;
	reader.readUInt32(numLines);
    m_descrText.clear();
    for (uint32_t i = 0; i < numLines; ++i)
    {
        std::string line;
		reader.readLine(line);
        m_descrText.append(line).append("\n");
    }
}
Ejemplo n.º 3
0
void OpponentDescription::read(TextReader& reader)
{
    // TODO: throw on error
    reader.readLine(m_opponentName);
    reader.readLine(m_driverName);
    reader.readUInt32(m_id);
    reader.readUInt32(m_strength);
    std::string m_avail;
    reader.readLine(m_avail);
    m_networkAvail = parseNetAvail(m_avail);
    reader.readLine(m_flic1File);
    reader.readLine(m_textfFile);
    reader.readLine(m_flic2File);
	uint32_t descrChunksCnt = 0;
    reader.readUInt32(descrChunksCnt);
    for (uint32_t i = 0; i < descrChunksCnt; ++i)
    {
        DescrTextChunk chunk;
        chunk.read(reader);
    }
}