TFileRead()
Read a file one line at a time
- Syntax
-
- oFile := TFileRead():New( <cFileName> [, <nReadSize> ] )
- Arguments
-
- <cFileName> is the required name of the file to be read.
- <nReadSize> is the optional size to use when reading from the file. The default value is 4096 and the allowed range is 1 through 65535. Any value outside of this range causes the default value to be used.
- Returns
-
- An instance of the File Reader class
- Description
-
- TFileRead() is used to access a file one line at a time. You must specify the name of the file when an instance of the class is created.
- The class data should be considered private to the class.
- The class methods are as follows:
- New() Creates a new instance of the TFileRead class.
- Open([<nFlags>]) Opens the file for reading. The optional nFlags parameter can use any of the FOPEN() flags from fileio.ch. The default is FO_READ + FO_SHARED. Calling this method when the file is already open causes the next ReadLine() to start over from the beginning of the file.
- Close() Closes the file.
- ReadLine() Returns one line from the file, stripping the newline characters. The following sequences are treated as one newline: 1) CR CR LF; 2) CR LF; 3) LF; and 4) CR. Note: LF CR is 2 newlines.
- Name() Returns the name of the file.
- IsOpen() Returns .T. if the file is open.
- MoreToRead() Returns .T. if there are more lines to be read (think of it as an inverse EOF function).
- Error() Returns .T. if an error has occurred.
- ErrorNo() Returns the current error code.
- ErrorMsg([<cPre>]) Returns a formatted error message.
Examples
#ifdef __HARBOUR__
#define NEW_LINE CHR( 10 )
#else
#define NEW_LINE CHR( 13 ) + CHR( 10 )
#endif
#include "fileio.ch"
PROCEDURE Main( cFile )
LOCAL oFile := TFileRead():New( cFile )
oFile:Open()
IF oFile:Error()
QOUT( oFile:ErrorMsg( "FileRead: " ) )
ELSE
WHILE oFile:MoreToRead()
OUTSTD( oFile:ReadLine() )
OUTSTD( NEW_LINE )
END WHILE
oFile:Close()
END IF
QUIT
Tests
See Examples
- Status
- Ready
- Compliance
-
- This is a new Harbour Tools class
- Files
-
- Library is libmisc
- See Also