mlisp/clib/csvparser.h

31 lines
769 B
C++

#include "../ml.h"
#include <string>
#include <vector>
#include <regex>
class CsvParser {
private:
char field_separator;
char line_separator;
char line_separator2;
char quote_character;
bool skip_header;
bool header_skiped;
public:
CsvParser(bool skip_hdr = false, char field_sep = ',', char quote_ch = '"', char line_sep = '\r', char line_sep2 = '\n');
void parseCSV(const std::string &csvSource, std::vector< std::vector<std::string> > &lines);
MlValue ivalualize(std::vector< std::vector<std::string> > &parsed_data) const;
private:
void addLine(const std::vector<std::string> &line, std::vector< std::vector<std::string> > &lines);
bool is_string_int(const std::string &str) const;
bool is_string_float(const std::string &str) const;
};