Qore Programming Language Reference Manual
1.7.0
|
This class defines a line iterator for text files. More...
Public Member Methods | |
constructor (string path, *string encoding, *string eol, bool trim=True, *bool nonblocking_open) | |
Opens the given file for reading with the given options and creates the FileLineIterator object. More... | |
copy () | |
Creates a new FileLineIterator object, based on the same object being iterated in the original object (the original file is reopened) More... | |
string | getEncoding () |
Returns the character encoding for the FileLineIterator. More... | |
string | getFileName () |
Returns the file path/name used to open the file. More... | |
string | getLine () |
Returns the current line in the file or throws an ITERATOR-ERROR exception if the iterator is invalid. More... | |
string | getValue () |
Returns the current line in the file or throws an ITERATOR-ERROR exception if the iterator is invalid. More... | |
hash< StatInfo > | hstat () |
Returns StatInfo hash of hstat() of the underlying file. More... | |
int | index () |
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... | |
bool | isTty () |
Returns True if the FileLineIterator is connected to a terminal device, False if not. More... | |
bool | next () |
Moves the current position to the next line in the file; returns False if there are no more lines to read; if the iterator is not pointing at a valid element before this call, the iterator will be positioned to the beginning of the file. More... | |
reset () | |
Reset the iterator instance to its initial state. More... | |
list< auto > | stat () |
Returns Stat List of stat() of the underlying file. More... | |
bool | valid () |
Returns True if the iterator is currently pointing at a valid element, False if not. More... | |
Public Member Methods inherited from Qore::AbstractLineIterator | |
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... | |
This class defines a line iterator for text files.
Qore::FileLineIterator::constructor | ( | string | path, |
*string | encoding, | ||
*string | eol, | ||
bool | trim = True , |
||
*bool | nonblocking_open | ||
) |
Opens the given file for reading with the given options and creates the FileLineIterator object.
path | the path to open for reading |
encoding | character encoding of the data in the file; if not ASCII-compatible, all data will be converted to UTF-8; if not present, the default character encoding is assumed |
eol | the optional end of line character(s) to use to detect lines in the file; if this string is not passed, then the end of line character(s) are detected automatically, and can be either "\n" , "\r" , or "\r\n" (the last one is only automatically detected when not connected to a terminal device in order to keep the I/O from stalling); if this string is passed and has a different character encoding from this object's (as determined by the encoding parameter), then it will be converted to the FileLineIterator's character encoding |
trim | if True the string return values for the lines iterated will be trimmed of the eol bytes |
nonblocking_open | if True, then the O_NONBLOCK flag will be set in the call to open() (2) |
ENCODING-CONVERSION-ERROR | this exception could be thrown if the eol argument has a different character encoding from the File's and an error occurs during encoding conversion |
ILLEGAL-EXPRESSION | FileLineIterator::constructor() cannot be called with a TTY target when %no-terminal-io is set |
Qore::FileLineIterator::copy | ( | ) |
Creates a new FileLineIterator object, based on the same object being iterated in the original object (the original file is reopened)
ILLEGAL-EXPRESSION | FileLineIterator::constructor() cannot be called with a TTY target when %no-terminal-io is set |
string Qore::FileLineIterator::getEncoding | ( | ) |
Returns the character encoding for the FileLineIterator.
string Qore::FileLineIterator::getFileName | ( | ) |
Returns the file path/name used to open the file.
|
virtual |
Returns the current line in the file or throws an ITERATOR-ERROR
exception if the iterator is invalid.
ITERATOR-ERROR
exception if the iterator is invalidITERATOR-ERROR | the iterator is not pointing at a valid element |
ITERATOR-THREAD-ERROR | this exception is thrown if this method is called from any thread other than the thread that created the object |
Implements Qore::AbstractLineIterator.
|
virtual |
Returns the current line in the file or throws an ITERATOR-ERROR
exception if the iterator is invalid.
ITERATOR-ERROR
exception if the iterator is invalidITERATOR-ERROR | the iterator is not pointing at a valid element |
ITERATOR-THREAD-ERROR | this exception is thrown if this method is called from any thread other than the thread that created the object |
Implements Qore::AbstractLineIterator.
|
virtual |
Returns the current iterator line number in the file (the first line is line 1) or 0 if not pointing at a valid element.
Implements Qore::AbstractLineIterator.
bool Qore::FileLineIterator::isTty | ( | ) |
Returns True if the FileLineIterator is connected to a terminal device, False if not.
|
virtual |
Moves the current position to the next line in the file; returns False if there are no more lines to read; if the iterator is not pointing at a valid element before this call, the iterator will be positioned to the beginning of the file.
This method will return True again after it returns False once if file is not empty, otherwise it will always return False The iterator object should not be used after this method returns False
ITERATOR-THREAD-ERROR | this exception is thrown if this method is called from any thread other than the thread that created the object |
Implements Qore::AbstractLineIterator.
Qore::FileLineIterator::reset | ( | ) |
Reset the iterator instance to its initial state.
Reset the iterator instance to its initial state
ITERATOR-THREAD-ERROR | this exception is thrown if this method is called from any thread other than the thread that created the object |
list<auto> Qore::FileLineIterator::stat | ( | ) |
|
virtual |