CsvUtil::CsvIterator Class Reference

The CsvIterator class allows CSV sources to be iterated on a record basis. The source of the input data is either a AbstractLineIterator object or an InputStream object. More...

Inheritance diagram for CsvUtil::CsvIterator:
[legend]

## Public Member Functions

| constructor (Qore::AbstractLineIterator li, *hash opts)
| Creates the CsvIterator in single-type mode with general line iterator to read and an option hash. More...
| constructor (Qore::AbstractLineIterator li, hash spec, hash opts)
| Creates the CsvIterator in multi-type mode with general line iterator to read and optionally an option hash. More...
| constructor (Qore::InputStream input, string encoding="UTF-8", *hash opts)
| Creates the CsvIterator from an InputStream, the input encoding, and optionally an option hash. More...
| constructor (Qore::InputStream input, string encoding="UTF-8", hash spec, hash opts)
| Creates the CsvIterator in multi-type mode from an InputStream, the record specification, the input encoding, and optionally an option hash. More...
Public Member Functions inherited from CsvUtil::AbstractCsvIterator
| constructor (AbstractLineIterator li, *hash opts)
| creates the AbstractCsvIterator with an option hash in single-type mode More...
| constructor (AbstractLineIterator li, hash spec, hash opts)
| creates the AbstractCsvIterator with an option hash in multi-type mode More...
*list | getHeaders ()
| Returns the current record headers or NOTHING if no headers have been detected or saved yet. More...
*list | getHeaders (string type)
| Returns a list of headers for the given record or NOTHING if the record is not recognized. More...
string | getQuote ()
| Returns the current quote string. More...
hash | getRecord (bool extended)
| Returns the current record as a hash. More...
hash | getRecord ()
| Returns the current record as a hash. More...
auto | getRecordList ()
| Returns the current record as a list. More...
string | getSeparator ()
| Returns the current separator string. More...
hash | getValue ()
| Returns the current record as a hash. More...
string | identifyType (list rec)
| Identify a fixed-length line type using identifyTypeImpl(); may be overridden if necessary. More...
int | index ()
| Returns the row index being iterated, which does not necessarily correspond to the line number when there are header rows and blank lines are skipped. More...
int | lineNumber ()
| Returns the current iterator line number in the file (the first line is line 1) or 0 if not pointing at a valid element. More...
auto | memberGate (string name)
| Returns the given column value for the current row. More...
bool | next ()
| Moves the current line / record position to the next line / record; returns False if there are no more lines to iterate. More...

## Detailed Description

The CsvIterator class allows CSV sources to be iterated on a record basis. The source of the input data is either a AbstractLineIterator object or an InputStream object.

See also
  - AbstractCsvIterator Constructor Option Hash Overview
  - Option Field Types
  - Option Field Hash

## Member Function Documentation

## constructor() [1/4]

CsvUtil::CsvIterator::constructor | ( | Qore::AbstractLineIterator | li,
|  | *hash | opts
| ) |  |

Creates the CsvIterator in single-type mode with general line iterator to read and an option hash.

Parameters

  li | line iterator of CSV file to read
  opts | a hash of optional options; see AbstractCsvIterator Constructor Option Hash Overview for more information

Exceptions

  ABSTRACTCSVITERATOR-ERROR | invalid or unknown option; invalid data type for option; `"header_names"` is True and `"header_lines"` is 0 or `"headers"` is also present; unknown field type

## constructor() [2/4]

CsvUtil::CsvIterator::constructor | ( | Qore::AbstractLineIterator | li,
|  | hash | spec,
|  | hash | opts
| ) |  |

Creates the CsvIterator in multi-type mode with general line iterator to read and optionally an option hash.

Parameters

  li | line iterator of CSV file to read
  spec | a hash of field and type definition; see Option Field Hash for more information
  opts | a hash of optional options; see AbstractCsvIterator Constructor Option Hash Overview for more information

Exceptions

  ABSTRACTCSVITERATOR-ERROR | invalid or unknown option; invalid data type for option; `"header_names"` is True and `"header_lines"` is 0 or `"headers"` is also present; unknown field type

## constructor() [3/4]

CsvUtil::CsvIterator::constructor | ( | Qore::InputStream | input,
|  | string | encoding = `"UTF-8"`,
|  | *hash | opts
| ) |  |

Creates the CsvIterator from an InputStream, the input encoding, and optionally an option hash.

Parameters

  input | the InputStream providing data to iterate
  encoding | the encoding of the input stream
  opts | a hash of optional options; see AbstractCsvIterator Constructor Option Hash Overview for more information

Exceptions

  ABSTRACTCSVITERATOR-ERROR | invalid or unknown option; invalid data type for option; `"header_names"` is True and `"header_lines"` is 0 or `"headers"` is also present; unknown field type

## constructor() [4/4]

CsvUtil::CsvIterator::constructor | ( | Qore::InputStream | input,
|  | string | encoding = `"UTF-8"`,
|  | hash | spec,
|  | hash | opts
| ) |  |

Creates the CsvIterator in multi-type mode from an InputStream, the record specification, the input encoding, and optionally an option hash.

Parameters

  input | the InputStream providing data to iterate
  encoding | the encoding of the input stream
  spec | a hash of field and type definition; see Option Field Hash for more information
  opts | a hash of optional options; see AbstractCsvIterator Constructor Option Hash Overview for more information

Exceptions

  ABSTRACTCSVITERATOR-ERROR | invalid or unknown option; invalid data type for option; `"header_names"` is True and `"header_lines"` is 0 or `"headers"` is also present; unknown field type