43#ifndef GUM_CSV_PARSER_H
44#define GUM_CSV_PARSER_H
94 const std::string& filename,
95 const std::string& delimiter =
",",
96 const char commentmarker =
'#',
97 const char quoteMarker =
'"');
118 const std::vector< std::string >&
current()
const;
125 const std::string& delimiter =
",",
126 const char commentmarker =
'#',
127 const char quoteMarker =
'"');
132#ifndef DOXYGEN_SHOULD_SKIP_THIS
135 void _getNextTriplet_(std::string_view str,
136 std::size_t& first_letter_token,
137 std::size_t& next_token,
138 std::size_t& last_letter_token,
139 std::size_t from)
const;
141 void _tokenize_(std::string_view str);
143 std::size_t _correspondingQuoteMarker_(std::string_view str, std::size_t pos)
const;
147 std::string _delimiter_;
148 std::string _spaces_;
149 std::string _delimiterPlusSpaces_;
150 std::size_t _nbLine_;
151 char _commentMarker_;
155 std::istream* _instream_;
156 std::vector< std::string > _data_;
157 const std::string _filename_;
CSVParser(std::istream &in, const std::string &filename, const std::string &delimiter=",", const char commentmarker='#', const char quoteMarker='"')
default constructor
void useNewStream(std::istream &in, const std::string &delimiter=",", const char commentmarker='#', const char quoteMarker='"')
reopens a new input stream to parse
bool next()
gets the next line of the csv stream and parses it
std::size_t nbLine() const
returns the current line number within the stream
virtual ~CSVParser()
destructor
const std::vector< std::string > & current() const
returns the current parsed line
include the inlined functions if necessary
gum is the global namespace for all aGrUM entities