|
Vince's CSV Parser
|
Stores information about how to parse a CSV file. More...
#include <csv_format.hpp>
Public Member Functions | |
| CSVFormat ()=default | |
| Settings for parsing a RFC 4180 CSV file. | |
| CSVFormat & | delimiter (char delim) |
| Sets the delimiter of the CSV file. | |
| CSVFormat & | delimiter (const std::vector< char > &delim) |
| Sets a list of potential delimiters. | |
| CSVFormat & | trim (const std::vector< char > &ws) |
| Sets the whitespace characters to be trimmed. | |
| CSVFormat & | quote (char quote) |
| Sets the quote character. | |
| CSVFormat & | column_names (const std::vector< std::string > &names) |
| Sets the column names. | |
| CSVFormat & | header_row (int row) |
| Sets the header row. | |
| CSVFormat & | no_header () |
| Tells the parser that this CSV has no header row. | |
| CSVFormat & | quote (bool use_quote) |
| Turn quoting on or off. | |
| CONSTEXPR_14 CSVFormat & | variable_columns (VariableColumnPolicy policy=VariableColumnPolicy::IGNORE_ROW) |
| Tells the parser how to handle columns of a different length than the others. | |
| CONSTEXPR_14 CSVFormat & | variable_columns (bool policy) |
| Tells the parser how to handle columns of a different length than the others. | |
| CONSTEXPR_14 CSVFormat & | column_names_policy (ColumnNamePolicy policy) |
| Sets the column name lookup policy. | |
| CSVFormat & | chunk_size (size_t size) |
| Sets the chunk size used when reading the CSV. | |
| bool | guess_delim () const |
Static Public Member Functions | |
| static CSVFormat | guess_csv () |
| CSVFormat preset for delimiter inference with header/n_cols inference enabled. | |
Public Attributes | |
| friend | CSVReader |
Stores information about how to parse a CSV file.
Can be used to construct a csv::CSVReader.
Definition at line 44 of file csv_format.hpp.
| CSVFormat & csv::CSVFormat::chunk_size | ( | size_t | size | ) |
Sets the chunk size used when reading the CSV.
| [in] | size | Chunk size in bytes (minimum: CSV_CHUNK_SIZE_FLOOR) |
| std::invalid_argument | if size < CSV_CHUNK_SIZE_FLOOR |
Use this when constructing a CSVReader from a filename and individual rows may exceed the default 10MB chunk size. The value is passed to CSVReader at construction time, before any data is read.
Definition at line 53 of file csv_format.cpp.
| CSVFormat & csv::CSVFormat::column_names | ( | const std::vector< std::string > & | names | ) |
Sets the column names.
Definition at line 36 of file csv_format.cpp.
|
inline |
Sets the column name lookup policy.
| [in] | policy | Use ColumnNamePolicy::CASE_INSENSITIVE to allow case-insensitive column lookups via CSVRow::operator[] and CSVReader::index_of(). |
Definition at line 126 of file csv_format.hpp.
| CSVFormat & csv::CSVFormat::delimiter | ( | char | delim | ) |
Sets the delimiter of the CSV file.
Passing a single delimiter disables delimiter inference. Header-row inference still runs unless header_row()/no_header() was set explicitly or column_names() was provided.
| `std::runtime_error` | thrown if trim, quote, or possible delimiting characters overlap |
Definition at line 11 of file csv_format.cpp.
| CSVFormat & csv::CSVFormat::delimiter | ( | const std::vector< char > & | delim | ) |
Sets a list of potential delimiters.
Passing multiple delimiters enables delimiter inference.
| `std::runtime_error` | thrown if trim, quote, or possible delimiting characters overlap |
Definition at line 17 of file csv_format.cpp.
|
inlinestatic |
CSVFormat preset for delimiter inference with header/n_cols inference enabled.
Definition at line 164 of file csv_format.hpp.
|
inline |
Definition at line 176 of file csv_format.hpp.
| CSVFormat & csv::CSVFormat::header_row | ( | int | row | ) |
Sets the header row.
| [in] | row | Row index containing column names; negative means no header row. |
Definition at line 43 of file csv_format.cpp.
|
inline |
Tells the parser that this CSV has no header row.
header_row(-1) Definition at line 97 of file csv_format.hpp.
|
inline |
Turn quoting on or off.
Definition at line 103 of file csv_format.hpp.
| CSVFormat & csv::CSVFormat::quote | ( | char | quote | ) |
Sets the quote character.
| `std::runtime_error` | thrown if trim, quote, or possible delimiting characters overlap |
Definition at line 23 of file csv_format.cpp.
| CSVFormat & csv::CSVFormat::trim | ( | const std::vector< char > & | ws | ) |
Sets the whitespace characters to be trimmed.
| `std::runtime_error` | thrown if trim, quote, or possible delimiting characters overlap |
Definition at line 30 of file csv_format.cpp.
|
inline |
Tells the parser how to handle columns of a different length than the others.
Definition at line 115 of file csv_format.hpp.
|
inline |
Tells the parser how to handle columns of a different length than the others.
Definition at line 109 of file csv_format.hpp.
| friend csv::CSVFormat::CSVReader |
Definition at line 180 of file csv_format.hpp.