c-resources/CPlusPlus20ForProgrammers-m.../examples/libraries/rapidcsv/doc/rapidcsv_Document.md

562 lines
12 KiB
Markdown
Raw Normal View History

2024-04-09 06:45:18 +00:00
## class rapidcsv::Document
Class representing a CSV document.
---
```c++
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**
- `pPath` specifies the path of an existing CSV-file to populate the Document data with.
- `pLabelParams` specifies which row and column should be treated as labels.
- `pSeparatorParams` specifies which field and row separators should be used.
- `pConverterParams` specifies how invalid numbers (including empty strings) should be handled.
- `pLineReaderParams` specifies how special line formats should be treated.
---
```c++
Document (std::istream & pStream, const LabelParams & pLabelParams = LabelParams(), const SeparatorParams & pSeparatorParams = SeparatorParams(), const ConverterParams & pConverterParams = ConverterParams(), const LineReaderParams & pLineReaderParams = LineReaderParams())
```
Constructor.
**Parameters**
- `pStream` specifies an input stream to read CSV data from.
- `pLabelParams` specifies which row and column should be treated as labels.
- `pSeparatorParams` specifies which field and row separators should be used.
- `pConverterParams` specifies how invalid numbers (including empty strings) should be handled.
- `pLineReaderParams` specifies how special line formats should be treated.
---
```c++
void Clear ()
```
Clears loaded Document data.
---
```c++
template<typename T > T GetCell (const size_t pColumnIdx, const size_t pRowIdx)
```
Get cell by index.
**Parameters**
- `pColumnIdx` zero-based column index.
- `pRowIdx` zero-based row index.
**Returns:**
- cell data.
---
```c++
template<typename T > T GetCell (const size_t pColumnIdx, const size_t pRowIdx, ConvFunc< T > pToVal)
```
Get cell by index.
**Parameters**
- `pColumnIdx` zero-based column index.
- `pRowIdx` zero-based row index.
- `pToVal` conversion function.
**Returns:**
- cell data.
---
```c++
template<typename T > T GetCell (const std::string & pColumnName, const std::string & pRowName)
```
Get cell by name.
**Parameters**
- `pColumnName` column label name.
- `pRowName` row label name.
**Returns:**
- cell data.
---
```c++
template<typename T > T GetCell (const std::string & pColumnName, const std::string & pRowName, ConvFunc< T > pToVal)
```
Get cell by name.
**Parameters**
- `pColumnName` column label name.
- `pRowName` row label name.
- `pToVal` conversion function.
**Returns:**
- cell data.
---
```c++
template<typename T > T GetCell (const std::string & pColumnName, const size_t pRowIdx)
```
Get cell by column name and row index.
**Parameters**
- `pColumnName` column label name.
- `pRowIdx` zero-based row index.
**Returns:**
- cell data.
---
```c++
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**
- `pColumnName` column label name.
- `pRowIdx` zero-based row index.
- `pToVal` conversion function.
**Returns:**
- cell data.
---
```c++
template<typename T > T GetCell (const size_t pColumnIdx, const std::string & pRowName)
```
Get cell by column index and row name.
**Parameters**
- `pColumnIdx` zero-based column index.
- `pRowName` row label name.
**Returns:**
- cell data.
---
```c++
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**
- `pColumnIdx` zero-based column index.
- `pRowName` row label name.
- `pToVal` conversion function.
**Returns:**
- cell data.
---
```c++
template<typename T > std::vector<T> GetColumn (const size_t pColumnIdx)
```
Get column by index.
**Parameters**
- `pColumnIdx` zero-based column index.
**Returns:**
- vector of column data.
---
```c++
template<typename T > std::vector<T> GetColumn (const size_t pColumnIdx, ConvFunc< T > pToVal)
```
Get column by index.
**Parameters**
- `pColumnIdx` zero-based column index.
- `pToVal` conversion function.
**Returns:**
- vector of column data.
---
```c++
template<typename T > std::vector<T> GetColumn (const std::string & pColumnName)
```
Get column by name.
**Parameters**
- `pColumnName` column label name.
**Returns:**
- vector of column data.
---
```c++
template<typename T > std::vector<T> GetColumn (const std::string & pColumnName, ConvFunc< T > pToVal)
```
Get column by name.
**Parameters**
- `pColumnName` column label name.
- `pToVal` conversion function.
**Returns:**
- vector of column data.
---
```c++
size_t GetColumnCount ()
```
Get number of data columns (excluding label columns).
**Returns:**
- column count.
---
```c++
ssize_t GetColumnIdx (const std::string & pColumnName)
```
Get column index by name.
**Parameters**
- `pColumnName` column label name.
**Returns:**
- zero-based column index.
---
```c++
std::string GetColumnName (const ssize_t pColumnIdx)
```
Get column name.
**Parameters**
- `pColumnIdx` zero-based column index.
**Returns:**
- column name.
---
```c++
std::vector<std::string> GetColumnNames ()
```
Get column names.
**Returns:**
- vector of column names.
---
```c++
template<typename T > std::vector<T> GetRow (const size_t pRowIdx)
```
Get row by index.
**Parameters**
- `pRowIdx` zero-based row index.
**Returns:**
- vector of row data.
---
```c++
template<typename T > std::vector<T> GetRow (const size_t pRowIdx, ConvFunc< T > pToVal)
```
Get row by index.
**Parameters**
- `pRowIdx` zero-based row index.
- `pToVal` conversion function.
**Returns:**
- vector of row data.
---
```c++
template<typename T > std::vector<T> GetRow (const std::string & pRowName)
```
Get row by name.
**Parameters**
- `pRowName` row label name.
**Returns:**
- vector of row data.
---
```c++
template<typename T > std::vector<T> GetRow (const std::string & pRowName, ConvFunc< T > pToVal)
```
Get row by name.
**Parameters**
- `pRowName` row label name.
- `pToVal` conversion function.
**Returns:**
- vector of row data.
---
```c++
size_t GetRowCount ()
```
Get number of data rows (excluding label rows).
**Returns:**
- row count.
---
```c++
ssize_t GetRowIdx (const std::string & pRowName)
```
Get row index by name.
**Parameters**
- `pRowName` row label name.
**Returns:**
- zero-based row index.
---
```c++
std::string GetRowName (const ssize_t pRowIdx)
```
Get row name.
**Parameters**
- `pRowIdx` zero-based column index.
**Returns:**
- row name.
---
```c++
std::vector<std::string> GetRowNames ()
```
Get row names.
**Returns:**
- vector of row names.
---
```c++
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**
- `pColumnIdx` zero-based column index.
- `pColumn` vector of column data (optional argument).
- `pColumnName` column label name (optional argument).
---
```c++
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**
- `pRowIdx` zero-based row index.
- `pRow` vector of row data (optional argument).
- `pRowName` row label name (optional argument).
---
```c++
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**
- `pPath` specifies the path of an existing CSV-file to populate the Document data with.
- `pLabelParams` specifies which row and column should be treated as labels.
- `pSeparatorParams` specifies which field and row separators should be used.
- `pConverterParams` specifies how invalid numbers (including empty strings) should be handled.
- `pLineReaderParams` specifies how special line formats should be treated.
---
```c++
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**
- `pStream` specifies an input stream to read CSV data from.
- `pLabelParams` specifies which row and column should be treated as labels.
- `pSeparatorParams` specifies which field and row separators should be used.
- `pConverterParams` specifies how invalid numbers (including empty strings) should be handled.
- `pLineReaderParams` specifies how special line formats should be treated.
---
```c++
void RemoveColumn (const size_t pColumnIdx)
```
Remove column by index.
**Parameters**
- `pColumnIdx` zero-based column index.
---
```c++
void RemoveColumn (const std::string & pColumnName)
```
Remove column by name.
**Parameters**
- `pColumnName` column label name.
---
```c++
void RemoveRow (const size_t pRowIdx)
```
Remove row by index.
**Parameters**
- `pRowIdx` zero-based row index.
---
```c++
void RemoveRow (const std::string & pRowName)
```
Remove row by name.
**Parameters**
- `pRowName` row label name.
---
```c++
void Save (const std::string & pPath = std::string())
```
Write Document data to file.
**Parameters**
- `pPath` optionally 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).
---
```c++
void Save (std::ostream & pStream)
```
Write Document data to stream.
**Parameters**
- `pStream` specifies an output stream to write the data to.
---
```c++
template<typename T > void SetCell (const size_t pColumnIdx, const size_t pRowIdx, const T & pCell)
```
Set cell by index.
**Parameters**
- `pRowIdx` zero-based row index.
- `pColumnIdx` zero-based column index.
- `pCell` cell data.
---
```c++
template<typename T > void SetCell (const std::string & pColumnName, const std::string & pRowName, const T & pCell)
```
Set cell by name.
**Parameters**
- `pColumnName` column label name.
- `pRowName` row label name.
- `pCell` cell data.
---
```c++
template<typename T > void SetColumn (const size_t pColumnIdx, const std::vector< T > & pColumn)
```
Set column by index.
**Parameters**
- `pColumnIdx` zero-based column index.
- `pColumn` vector of column data.
---
```c++
template<typename T > void SetColumn (const std::string & pColumnName, const std::vector< T > & pColumn)
```
Set column by name.
**Parameters**
- `pColumnName` column label name.
- `pColumn` vector of column data.
---
```c++
void SetColumnName (size_t pColumnIdx, const std::string & pColumnName)
```
Set column name.
**Parameters**
- `pColumnIdx` zero-based column index.
- `pColumnName` column name.
---
```c++
template<typename T > void SetRow (const size_t pRowIdx, const std::vector< T > & pRow)
```
Set row by index.
**Parameters**
- `pRowIdx` zero-based row index.
- `pRow` vector of row data.
---
```c++
template<typename T > void SetRow (const std::string & pRowName, const std::vector< T > & pRow)
```
Set row by name.
**Parameters**
- `pRowName` row label name.
- `pRow` vector of row data.
---
```c++
void SetRowName (size_t pRowIdx, const std::string & pRowName)
```
Set row name.
**Parameters**
- `pRowIdx` zero-based row index.
- `pRowName` row name.
---
###### API documentation generated using [Doxygenmd](https://github.com/d99kris/doxygenmd)