17 #include "libmesh/parallel.h" 101 const std::vector<std::string> &
getNames()
const;
108 const std::vector<std::vector<double>> &
getData()
const;
120 const std::vector<double> &
getData(
const std::string & name)
const;
121 const std::vector<double> &
getData(std::size_t index)
const;
130 const std::vector<std::vector<double>> &
getColumnData()
const;
131 const std::vector<double> &
getColumnData(
const std::string & name)
const;
155 std::vector<std::vector<double>>
_data;
174 void readColumnData(std::ifstream & stream_data, std::vector<double> & output);
175 void readRowData(std::ifstream & stream_data, std::vector<double> & output);
184 void processLine(
const std::string & line, std::vector<double> & row,
const unsigned int & num);
192 bool preprocessLine(std::string & line,
const unsigned int & num);
200 const std::string &
delimiter(
const std::string & line);
205 bool header(
const std::string & line);
std::vector< std::vector< double > > _data
Storage for the read data columns.
void setHeaderFlag(HeaderFlag value)
void read()
Perform the actual data reading.
const std::vector< std::vector< double > > & getColumnData() const
std::string _delimiter
The delimiter separating the supplied data entires.
HeaderFlag _header_flag
Flag indicating if the file contains a header.
const std::vector< std::vector< double > > & getData() const
Return the rows/columns of data.
Utility class for reading delimited data (e.g., CSV data).
void setComment(const std::string &value)
std::size_t numEntries() const
Get the total number of entries in the file.
bool _ignore_empty_lines
Flag for ignoring empty lines.
bool preprocessLine(std::string &line, const unsigned int &num)
Check the content of the line and if it should be skipped.
std::vector< std::string > _names
Storage for the read or generated column names.
FormatFlag _format_flag
Format "rows" vs "columns".
void setIgnoreEmptyLines(bool value)
Set/Get methods for file format controls.
auto max(const L &left, const R &right)
const std::vector< Point > getDataAsPoints() const
Get the data in Point format.
const std::string & setDelimiter() const
bool header(const std::string &line)
Return the header flag, if it is set to AUTO attempt to determine if a header exists in line...
void readColumnData(std::ifstream &stream_data, std::vector< double > &output)
Read the numeric data as rows or columns into a single vector.
HeaderFlag getHeaderFlag() const
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
DelimitedFileReader(const std::string &filename, const libMesh::Parallel::Communicator *comm=nullptr)
void setDelimiter(const std::string &value)
const std::vector< std::string > & getColumnNames() const
FormatFlag getFormatFlag() const
void setFormatFlag(FormatFlag value)
void setFileName(const std::string &new_file)
Set the file name, used to change the file to read from.
void readRowData(std::ifstream &stream_data, std::vector< double > &output)
std::string _filename
The supplied filename.
const std::vector< std::string > & getNames() const
Return the column/row names.
const libMesh::Parallel::Communicator *const _communicator
Communicator.
const std::size_t INVALID_SIZE
const std::string & getComment() const
bool getIgnoreEmptyLines() const
std::string _row_comment
Hide row comments.
const std::string & delimiter(const std::string &line)
Determine the delimiter.
std::vector< std::size_t > _row_offsets
Row offsets (only used with _format == "rows")
void processLine(const std::string &line, std::vector< double > &row, const unsigned int &num)
Populate supplied vector with content from line.