コード例 #1
0
ファイル: vk_data.cpp プロジェクト: mexus/vk-group-stats
bool VkData::LoadCSV(const std::string & f) {
        S_LOG("LoadCSV");
        using namespace csv;
        Parser parser;
        Filter filter;
        parser.SetFilter(&filter);

        static const Parser::Line fields{"Date", "Criterion", "Parameter 1", "Parameter 2", "Value"};
        filter.AddRequiredFields(fields);
        filter.AddPossibleValue("Criterion", "members");
        filter.AddPossibleValues("Parameter 1",{"New members", "Members lost"});

        if (!parser.Load(f)) {
                log(Log::error) << "VkData::LoadCSV " << "Failed to load file" << Log::endl;
                return false;
        } else {
                if (!parser.FindFields(fields)) {
                        auto &s = log(Log::error) << "Wrong fields, should be: ";
                        Parser::PrintFields(fields, s);
                        s << Log::endl;
                        return false;
                } else {
                        ParseCSV(parser);
                        return true;
                }
        }
}