32 file.open(filename, std::ios_base::in);
38 header =
Split(line, separator);
50 row =
Split(line, separator);
63 std::vector<std::string> rowStr =
Split(line, separator);
64 for (
const std::string& s : rowStr)
80 std::vector<std::string> rowStr =
Split(line, separator);
81 for (
size_t i = 0; i < rowStr.size() && i < header.size(); i++)
83 row[header.at(i)] =
toFloat(rowStr.at(i));
88 std::vector<std::vector<float>>
91 std::vector<std::vector<float>>
data;
92 std::vector<float> row;
100 std::vector<std::map<std::string, float>>
103 std::vector<std::map<std::string, float>>
data;
104 std::map<std::string, float> row;
112 std::map<std::string, std::vector<float>>
115 std::map<std::string, std::vector<float>>
data;
116 std::vector<float> row;
119 for (
size_t i = 0; i < row.size() && i < header.size(); i++)
121 data[header.at(i)].push_back(row.at(i));
127 std::vector<std::string>
140 CsvReader::readLine(std::string& line)
142 return static_cast<bool>(std::getline(file, line));
std::vector< std::vector< float > > readAllFloatList()
std::vector< std::string > getHeader()
CsvReader(const std::string &filename, bool hasHeader)
bool read(std::vector< std::string > &row)
std::vector< std::map< std::string, float > > readAllFloatMap()
std::map< std::string, std::vector< float > > readAllColumnsFloatMap()
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::vector< std::string > Split(const std::string &source, const std::string &splitBy, bool trimElements=false, bool removeEmptyElements=false)
float toFloat(const std::string &input)
Converts a string to float and uses always dot as seperator.