Set a binary file pointer to a new position

     FSEEK(<nHandle>, <nOffset>, [<nOrigin>]) --> nPosition


     <nHandle> is the file handle obtained from FOPEN(), FCREATE(), or
     predefined by DOS.

     <nOffset> is the number of bytes to move the file pointer from the
     position defined by <nOrigin>.  It can be a positive or negative number.
     A positive number moves the pointer forward, and a negative number moves
     the pointer backward in the file.

     <nOrigin> defines the starting location of the file pointer before
     FSEEK() is executed.  The default value is zero, representing the
     beginning of file.  If <nOrigin> is the end of file, <nOffset> must be
     zero or negative.

     Methods of Moving the File Pointer
     Origin  Fileio.ch      Description
     0       FS_SET         Seek from beginning of file
     1       FS_RELATIVE    Seek from the current pointer position
     2       FS_END         Seek from end of file


     FSEEK() returns the new position of the file pointer relative to the
     beginning of file (position 0) as an integer numeric value.  This value
     is without regard to the original position of the file pointer.


     FSEEK() is a low-level file function that moves the file pointer forward
     or backward in an open binary file without actually reading the contents
     of the specified file.  The beginning position and offset are specified
     as function arguments, and the new file position is returned.
     Regardless of the function arguments specified, the file pointer cannot
     be moved beyond the beginning or end of file boundaries.

     Warning!  This function allows low-level access to DOS files and
     devices.  It should be used with extreme care and requires a thorough
     knowledge of the operating system.


     .  This example uses FSEEK() to determine the length of a file by
        seeking from the end of file.  Then, the file pointer is reset to the
        beginning of file:

        #include "Fileio.ch"
        // Open the file read-only
        IF (nHandle := FOPEN("Temp.txt")) >= 0
           // Get length of the file
           nLength := FSEEK(nHandle, 0, FS_END)
           // Reset file position to beginning of file
           FSEEK(nHandle, 0)
           ? "File open error:", FERROR()

     .  This pseudofunction positions the file pointer at the last
        byte in a binary file:

        #define FileBottom(nHandle);
              (FSEEK(nHandle, 0, FS_END))

     .  This pseudofunction positions the file pointer at the first
        byte in a binary file:

        #define FileTop(nHandle);
              (FSEEK(nHandle, 0))

     .  This pseudofunction reports the current position of the file
        pointer in a specified binary file:

        #define FilePos(nHandle);
              (FSEEK(nHandle, 0, FS_RELATIVE))

 Files   Library is CLIPPER.LIB, header file is Fileio.ch.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.