29 #include <tnt/tnt_array1d.h>
80 template <
typename TokenStore = QString>
104 CSVParser(
const QString &str,
const char &delimiter =
',',
105 bool keepEmptyParts =
true) {
106 parse(str, delimiter, keepEmptyParts);
111 return (_elements.dim());
126 return (_elements[nth]);
146 int parse(
const QString &str,
const char &delimiter =
',',
147 bool keepEmptyParts =
true) {
149 str.split(delimiter, keepEmptyParts? QString::KeepEmptyParts : QString::SkipEmptyParts);
151 for(
int i = 0 ; i < tokens.size() ; i++) {
155 return (_elements.dim());
265 CSVReader(
const QString &csvfile,
bool header =
false,
int skip = 0,
267 const bool ignoreComments =
true);
277 return (_lines.size());
291 int nrows(_lines.size() - firstRowIndex());
292 return ((nrows < 0) ? 0 : nrows);
319 _ignoreComments = ignore;
341 if(nskip >= 0) _skip = nskip;
405 _delimiter = delimiter;
452 void read(
const QString &fname);
463 template <
typename T> TNT::Array1D<T>
convert(
const CSVAxis &data)
const;
476 typedef std::vector<QString> CSVList;
482 bool _ignoreComments;
493 int firstRowIndex()
const {
494 return (_skip + ((_header) ? 1 : 0));
497 std::istream &load(std::istream &ifile);
534 template <
typename T>
536 TNT::Array1D<T> out(data.dim());
537 for(
int i = 0 ; i < data.dim() ; i++) {