CoreComponents 4.0.0
A Modern C++ Toolkit
Loading...
Searching...
No Matches

Read records from a CSV formatted input text. More...

#include <cc/CsvSource>

Inheritance diagram for CsvSource:

Public Types

using Item = List< String >
 Item type for iteration
 
- Public Types inherited from Object
using NullAccess = cc::NullAccess
 Error thrown when trying to access a null object.
 
using VirginityTestFailed = cc::VirginityTestFailed
 Error thrown when trying to initialize an object with a non-virgin state.
 

Public Member Functions

 CsvSource (const String &text)
 Create a new CSV source.
 
bool read (Out< List< String > > record)
 Read next record.
 
SourceIterator< CsvSourcebegin ()
 Iteration start.
 
SourceIterator< CsvSourceend ()
 Iteration end.
 
- Public Member Functions inherited from Object
 Object ()=default
 Create a null object.
 
 operator bool () const
 Check if this is a non-null object.
 
bool isNull () const
 Check if this is a null object.
 
int useCount () const
 Reference count.
 
template<class T >
bool is () const
 Check if this object is of type T.
 
template<class T >
as () const
 Cast this object to type T.
 
bool isWeak () const
 Check if the underlying object reference is weak.
 
bool operator== (const Object &other) const
 Equality operator.
 
std::strong_ordering operator<=> (const Object &other) const
 Ordering operator.
 

Additional Inherited Members

- Protected Member Functions inherited from Object
template<class T >
weak () const
 
template<class T >
void initOnce ()
 Create the object state when called the first time.
 
template<class T >
void initOncePerThread ()
 Create a distinct object state for each thread when called the first time in that thread.
 
 Object (State *newState)
 Initialize object with newState.
 
 Object (State *state, Alias)
 
 Object (State *state, Weak)
 
Objectoperator= (std::nullptr_t)
 
- Static Protected Member Functions inherited from Object
template<class T >
static T alias (const State *state)
 Create an alias object for the given state.
 
template<class T >
static T weak (const State *state)
 
- Protected Attributes inherited from Object
Handle< Stateme
 Internal object state
 

Detailed Description

Read records from a CSV formatted input text.

The CSV syntax follows closely the CSV syntax definition of RFC 4180, but is more relaxed in several ways. Firstly it also supports text data beyond the printable ASCII range and thereby fully supports national code pages and UTF-8 encoding. Secondly it accepts any form of newline encoding ("\n", "\f", "\n\f" or "\f\n").

Member Typedef Documentation

◆ Item

using Item = List<String>

Item type for iteration

Constructor & Destructor Documentation

◆ CsvSource()

CsvSource ( const String text)
explicit

Create a new CSV source.

Parameters
textCSV formatted input text

Member Function Documentation

◆ read()

bool read ( Out< List< String > >  record)

Read next record.

Parameters
recordReturns the next record (if not end of input)
Returns
True if not end of input

◆ begin()

SourceIterator< CsvSource > begin ( )

Iteration start.

◆ end()

Iteration end.