Qore Programming Language Reference Manual
1.12.2
|
This class defines an abstract interface for line iterators. More...
Public Member Methods | |
abstract string | getLine () |
Returns the current line in the data or throws an INVALID-ITERATOR exception if the iterator is invalid. More... | |
list< string > | getSplitLine (string sep, string quote, string eol="\n", bool trim_unquoted=False) |
Returns the current line and splits the string into a list of components based on a separator string and a quote character. More... | |
abstract string | getValue () |
Returns the current line in the data or throws an INVALID-ITERATOR exception if the iterator is invalid. More... | |
abstract int | index () |
Returns the current iterator line number (the first line is line 1) or 0 if not pointing at a valid element. More... | |
abstract bool | next () |
Moves the current position to the next line; returns False if there are no more lines to read. More... | |
abstract bool | valid () |
Returns True if the iterator is currently pointing at a valid element, False if not. More... | |
This class defines an abstract interface for line iterators.
Classes inheriting this class can be used to iterate lines from various sources.
|
pure virtual |
Returns the current line in the data or throws an INVALID-ITERATOR
exception if the iterator is invalid.
INVALID-ITERATOR | the iterator is not pointing at a valid element |
Implemented in Qore::InputStreamLineIterator, Qore::FileLineIterator, and Qore::DataLineIterator.
list<string> Qore::AbstractLineIterator::getSplitLine | ( | string | sep, |
string | quote, | ||
string | eol = "\n" , |
||
bool | trim_unquoted = False |
||
) |
Returns the current line and splits the string into a list of components based on a separator string and a quote character.
Retrieves additional lines if the last is quoted and is not terimated; this way fields can contain multiple lines
The quote character can appear as the first part of a field, in which case it is assumed to designate the entire field. If instances of the quote character are found in the field preceded by a backquote character ("\"
), then these quote characters are included as part of the field's text and not treated as quote characters.
Also the separator character can appear as a part of a field with this variant.
This variant is useful for parsing CSV files, for example.
sep | the separator string; if the separator string is not found in the string to split, then a list with only one element containing the entire string argument is returned'; if this string has a different character encoding than str, then it will be converted to str's character encoding |
quote | the quote character |
eol | the end of line string to be readded in case of a field split between lines |
trim_unquoted | remove leading and trailing whitespace from unquoted fields |
ENCODING-CONVERSION-ERROR | this exception could be thrown if the string arguments have different character encodings and an error occurs during encoding conversion |
SPLIT-ERROR | field missing closing quote character; extra text following quoted field |
|
pure virtual |
Returns the current line in the data or throws an INVALID-ITERATOR
exception if the iterator is invalid.
This method calls AbstractLineIterator::getLine() internally.
INVALID-ITERATOR | the iterator is not pointing at a valid element |
Implements Qore::AbstractIterator.
Implemented in Qore::InputStreamLineIterator, Qore::FileLineIterator, and Qore::DataLineIterator.
|
pure virtual |
Returns the current iterator line number (the first line is line 1) or 0 if not pointing at a valid element.
Implemented in Qore::InputStreamLineIterator, Qore::FileLineIterator, and Qore::DataLineIterator.
|
pure virtual |
Moves the current position to the next line; returns False if there are no more lines to read.
This method will return True again after it returns False once if data is not empty, otherwise it will always return False. The iterator object should not be used after this method returns False.
Implements Qore::AbstractIterator.
Implemented in Qore::InputStreamLineIterator, Qore::FileLineIterator, and Qore::DataLineIterator.
|
pure virtual |
Returns True if the iterator is currently pointing at a valid element, False if not.
Implements Qore::AbstractIterator.
Implemented in Qore::InputStreamLineIterator, Qore::FileLineIterator, and Qore::DataLineIterator.