Positions the file pointer in a file opened with low-level access
FSEEK( <nHandle>, <nOffset>, [<nOrigin>] ) --> nPosition
<nHandle> DOS file handle.
<nOffset> The number of bytes to move.
<nOrigin> The relative position in the file.
<nPosition> the current position relative to begin-of-file
This function sets the file pointer in the file whose DOS file handle is <nHandle> and moves the file pointer by <expN2> bytes from the file position designated by <nOrigin>. The returned value is the relative position of the file pointer to the beginning-of-file marker once the operation has been completed.
<nHandle> is the file handle number. It is obtained from the FOPEN() or FCREATE() function.
The value of <nOffSet> is the number of bytes to move the file pointer from the position determined by <nOrigin>. The value of <nOffset> may be a negative number, suggesting backward movement.
The value of <nOrigin> designates the starting point from which the file pointer should he moved, as shown in the following table:
<nOrigin> fileio.ch File position ----------- ------------- ---------------------------------- 0 FS_SET Beginning of file 1 FS_RELATIVE Current file pointer position 2 FS_END End of file
If a value is not provided for <nOrigin>, it defaults to 0 and moves the file pointer from the beginning of the file.
// here is a function that read one text line from an open file // nH = file handle obtained from FOpen() // cB = a string buffer passed-by-reference to hold the result // nMaxLine = maximum number of bytes to read FUNCTION FREADln( nH, cB, nMaxLine ) LOCAL cLine, nSavePos, nEol, nNumRead cLine := Space( nMaxLine ) cB := "" nSavePos := FSeek( nH, 0, FS_RELATIVE ) nNumRead := FRead( nH, @cLine, nMaxLine ) IF ( nEol := At( hb_eol(), SubStr( cLine, 1, nNumRead ) ) ) == 0 cB := cLine ELSE cB := SubStr( cLine, 1, nEol - 1 ) FSEEK( nH, nSavePos + nEol + 1, FS_SET ) ENDIF RETURN nNumRead != 0
Library is rtl Header is fileio.ch