Class representing a CSV document.
Document (const std::string & pPath = std::string(), const LabelParams & pLabelParams = LabelParams(), const SeparatorParams & pSeparatorParams = SeparatorParams(), const ConverterParams & pConverterParams = ConverterParams(), const LineReaderParams & pLineReaderParams = LineReaderParams())Constructor.
Parameters
pPathspecifies the path of an existing CSV-file to populate the Document data with.pLabelParamsspecifies which row and column should be treated as labels.pSeparatorParamsspecifies which field and row separators should be used.pConverterParamsspecifies how invalid numbers (including empty strings) should be handled.pLineReaderParamsspecifies how special line formats should be treated.
Document (std::istream & pStream, const LabelParams & pLabelParams = LabelParams(), const SeparatorParams & pSeparatorParams = SeparatorParams(), const ConverterParams & pConverterParams = ConverterParams(), const LineReaderParams & pLineReaderParams = LineReaderParams())Constructor.
Parameters
pStreamspecifies a binary input stream to read CSV data from.pLabelParamsspecifies which row and column should be treated as labels.pSeparatorParamsspecifies which field and row separators should be used.pConverterParamsspecifies how invalid numbers (including empty strings) should be handled.pLineReaderParamsspecifies how special line formats should be treated.
void Clear ()Clears loaded Document data.
template<typename T > T GetCell (const size_t pColumnIdx, const size_t pRowIdx)Get cell by index.
Parameters
pColumnIdxzero-based column index.pRowIdxzero-based row index.
Returns:
- cell data.
template<typename T > T GetCell (const size_t pColumnIdx, const size_t pRowIdx, ConvFunc< T > pToVal)Get cell by index.
Parameters
pColumnIdxzero-based column index.pRowIdxzero-based row index.pToValconversion function.
Returns:
- cell data.
template<typename T > T GetCell (const std::string & pColumnName, const std::string & pRowName)Get cell by name.
Parameters
pColumnNamecolumn label name.pRowNamerow label name.
Returns:
- cell data.
template<typename T > T GetCell (const std::string & pColumnName, const std::string & pRowName, ConvFunc< T > pToVal)Get cell by name.
Parameters
pColumnNamecolumn label name.pRowNamerow label name.pToValconversion function.
Returns:
- cell data.
template<typename T > T GetCell (const std::string & pColumnName, const size_t pRowIdx)Get cell by column name and row index.
Parameters
pColumnNamecolumn label name.pRowIdxzero-based row index.
Returns:
- cell data.
template<typename T > T GetCell (const std::string & pColumnName, const size_t pRowIdx, ConvFunc< T > pToVal)Get cell by column name and row index.
Parameters
pColumnNamecolumn label name.pRowIdxzero-based row index.pToValconversion function.
Returns:
- cell data.
template<typename T > T GetCell (const size_t pColumnIdx, const std::string & pRowName)Get cell by column index and row name.
Parameters
pColumnIdxzero-based column index.pRowNamerow label name.
Returns:
- cell data.
template<typename T > T GetCell (const size_t pColumnIdx, const std::string & pRowName, ConvFunc< T > pToVal)Get cell by column index and row name.
Parameters
pColumnIdxzero-based column index.pRowNamerow label name.pToValconversion function.
Returns:
- cell data.
template<typename T > std::vector<T> GetColumn (const size_t pColumnIdx)Get column by index.
Parameters
pColumnIdxzero-based column index.
Returns:
- vector of column data.
template<typename T > std::vector<T> GetColumn (const size_t pColumnIdx, ConvFunc< T > pToVal)Get column by index.
Parameters
pColumnIdxzero-based column index.pToValconversion function.
Returns:
- vector of column data.
template<typename T > std::vector<T> GetColumn (const std::string & pColumnName)Get column by name.
Parameters
pColumnNamecolumn label name.
Returns:
- vector of column data.
template<typename T > std::vector<T> GetColumn (const std::string & pColumnName, ConvFunc< T > pToVal)Get column by name.
Parameters
pColumnNamecolumn label name.pToValconversion function.
Returns:
- vector of column data.
size_t GetColumnCount ()Get number of data columns (excluding label columns).
Returns:
- column count.
int GetColumnIdx (const std::string & pColumnName)Get column index by name.
Parameters
pColumnNamecolumn label name.
Returns:
- zero-based column index.
std::string GetColumnName (const size_t pColumnIdx)Get column name.
Parameters
pColumnIdxzero-based column index.
Returns:
- column name.
std::vector<std::string> GetColumnNames ()Get column names.
Returns:
- vector of column names.
template<typename T > std::vector<T> GetRow (const size_t pRowIdx)Get row by index.
Parameters
pRowIdxzero-based row index.
Returns:
- vector of row data.
template<typename T > std::vector<T> GetRow (const size_t pRowIdx, ConvFunc< T > pToVal)Get row by index.
Parameters
pRowIdxzero-based row index.pToValconversion function.
Returns:
- vector of row data.
template<typename T > std::vector<T> GetRow (const std::string & pRowName)Get row by name.
Parameters
pRowNamerow label name.
Returns:
- vector of row data.
template<typename T > std::vector<T> GetRow (const std::string & pRowName, ConvFunc< T > pToVal)Get row by name.
Parameters
pRowNamerow label name.pToValconversion function.
Returns:
- vector of row data.
size_t GetRowCount ()Get number of data rows (excluding label rows).
Returns:
- row count.
int GetRowIdx (const std::string & pRowName)Get row index by name.
Parameters
pRowNamerow label name.
Returns:
- zero-based row index.
std::string GetRowName (const size_t pRowIdx)Get row name.
Parameters
pRowIdxzero-based column index.
Returns:
- row name.
std::vector<std::string> GetRowNames ()Get row names.
Returns:
- vector of row names.
template<typename T > void InsertColumn (const size_t pColumnIdx, const std::vector< T > & pColumn = std::vector<T>(), const std::string & pColumnName = std::string())Insert column at specified index.
Parameters
pColumnIdxzero-based column index.pColumnvector of column data (optional argument).pColumnNamecolumn label name (optional argument).
template<typename T > void InsertRow (const size_t pRowIdx, const std::vector< T > & pRow = std::vector<T>(), const std::string & pRowName = std::string())Insert row at specified index.
Parameters
pRowIdxzero-based row index.pRowvector of row data (optional argument).pRowNamerow label name (optional argument).
void Load (const std::string & pPath, const LabelParams & pLabelParams = LabelParams(), const SeparatorParams & pSeparatorParams = SeparatorParams(), const ConverterParams & pConverterParams = ConverterParams(), const LineReaderParams & pLineReaderParams = LineReaderParams())Read Document data from file.
Parameters
pPathspecifies the path of an existing CSV-file to populate the Document data with.pLabelParamsspecifies which row and column should be treated as labels.pSeparatorParamsspecifies which field and row separators should be used.pConverterParamsspecifies how invalid numbers (including empty strings) should be handled.pLineReaderParamsspecifies how special line formats should be treated.
void Load (std::istream & pStream, const LabelParams & pLabelParams = LabelParams(), const SeparatorParams & pSeparatorParams = SeparatorParams(), const ConverterParams & pConverterParams = ConverterParams(), const LineReaderParams & pLineReaderParams = LineReaderParams())Read Document data from stream.
Parameters
pStreamspecifies a binary input stream to read CSV data from.pLabelParamsspecifies which row and column should be treated as labels.pSeparatorParamsspecifies which field and row separators should be used.pConverterParamsspecifies how invalid numbers (including empty strings) should be handled.pLineReaderParamsspecifies how special line formats should be treated.
void RemoveColumn (const size_t pColumnIdx)Remove column by index.
Parameters
pColumnIdxzero-based column index.
void RemoveColumn (const std::string & pColumnName)Remove column by name.
Parameters
pColumnNamecolumn label name.
void RemoveRow (const size_t pRowIdx)Remove row by index.
Parameters
pRowIdxzero-based row index.
void RemoveRow (const std::string & pRowName)Remove row by name.
Parameters
pRowNamerow label name.
void Save (const std::string & pPath = std::string())Write Document data to file.
Parameters
pPathoptionally specifies the path where the CSV-file will be created (if not specified, the original path provided when creating or loading the Document data will be used).
void Save (std::ostream & pStream)Write Document data to stream.
Parameters
pStreamspecifies a binary output stream to write the data to.
template<typename T > void SetCell (const size_t pColumnIdx, const size_t pRowIdx, const T & pCell)Set cell by index.
Parameters
pRowIdxzero-based row index.pColumnIdxzero-based column index.pCellcell data.
template<typename T > void SetCell (const std::string & pColumnName, const std::string & pRowName, const T & pCell)Set cell by name.
Parameters
pColumnNamecolumn label name.pRowNamerow label name.pCellcell data.
template<typename T > void SetCell (const size_t pColumnIdx, const std::string & pRowName, const T & pCell)Set cell by column index and row name.
Parameters
pColumnIdxzero-based column index.pRowNamerow label name.pCellcell data.
template<typename T > void SetCell (const std::string & pColumnName, const size_t pRowIdx, const T & pCell)Set cell by column name and row index.
Parameters
pColumnNamecolumn label name.pRowIdxzero-based row index.pCellcell data.
template<typename T > void SetColumn (const size_t pColumnIdx, const std::vector< T > & pColumn)Set column by index.
Parameters
pColumnIdxzero-based column index.pColumnvector of column data.
template<typename T > void SetColumn (const std::string & pColumnName, const std::vector< T > & pColumn)Set column by name.
Parameters
pColumnNamecolumn label name.pColumnvector of column data.
void SetColumnName (size_t pColumnIdx, const std::string & pColumnName)Set column name.
Parameters
pColumnIdxzero-based column index.pColumnNamecolumn name.
template<typename T > void SetRow (const size_t pRowIdx, const std::vector< T > & pRow)Set row by index.
Parameters
pRowIdxzero-based row index.pRowvector of row data.
template<typename T > void SetRow (const std::string & pRowName, const std::vector< T > & pRow)Set row by name.
Parameters
pRowNamerow label name.pRowvector of row data.
void SetRowName (size_t pRowIdx, const std::string & pRowName)Set row name.
Parameters
pRowIdxzero-based row index.pRowNamerow name.