Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- FORCE Data Base Compiler - ############################################################################## http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
##############################################################################
###+-----------+##############################################################
#+-| FB_SEEK() |----------------------------------------+#####################
#| +-----------+ Repositions the DOS read write pointer |#####################
#+------------------------------------------------------+#####################
##############################################################################
##############################################################################
#+--| Summary |----------------+##############################################
#|     #INCLUDE fileio.hdr     |##############################################
#+-----------------------------+##############################################
##############################################################################
##############################################################################
#+--| Syntax |--------------------------------------------------+#############
#|     FUNCTION ULONG fb_seek PROTOTYPE                         |#############
#|      PARAMETERS VALUE UINT handle, VALUE ULONG offset,;      |#############
#|      VALUE INT whence                                        |#############
#+--------------------------------------------------------------+#############
##############################################################################
##############################################################################
##########+---| Description |----------------------------------------+########
##########| The fb_seek() function repositions the DOS read write    |########
##########| pointer for the file associated with handle.             |########
##########| -------------------------------------------------------- |########
##########| whence defines the starting relative position of offset. |########
##########| whence can refer to the beginning of the file, the       |########
##########| current offset or the end of the file.  For example, if  |########
##########| whence indicates beginning of file, then offset is       |########
##########| calculated relative to the beginning of file. The header |########
##########| file fileio.hdr contains defines for the values of       |########
##########| whence.  refer to the WHENCE TABLE.                      |########              ####
##########| -------------------------------------------------------- |########
##########| fb_seek() function has no meaning when used with the DOS |########
##########| predefined file handles.                                 |########
##########+----------------------------------------------------------+########
##############################################################################
##############################################################################
#########+--| Example 1 |-------------------------------------------+#########
#########| *    Seek to an offset from the beginning of the file.   |#########
#########|                                                          |#########
#########| long_var = fb_seek( handle, 30, &FB_BEGIN )              |#########
#########+----------------------------------------------------------+#########
##############################################################################
##############################################################################
#########+--| Example 2 |-------------------------------------------+#########
#########| *    Here is a way to find the size of a file.           |#########
#########| *    Seek 0 bytes from the END of the file.              |#########
#########| *    fb_seek() will return the filesize.                 |#########
#########|                                                          |#########
#########| filesize = fb_seek( fhnd[x], 0, &FB_END )                |#########
#########+----------------------------------------------------------+#########
##############################################################################
##############################################################################
#########+--| Example 3 |-------------------------------------------+#########
#########| *    The first record of a database is header() bytes    |#########
#########| *    from the beginning of a file.  Suppose you have     |#########
#########| *    a database with 4 fields:                           |#########
#########| *        CHAR(4), DATE, NUMBER(3), LOGICAL               |#########
#########| *    and you want to read in the CHAR(4) and NUMBER(3)   |#########
#########| *    fields directly...Here's how:                       |#########
#########|                                                          |#########
#########| VARDEF                                                   |#########
#########|     CHAR(4)    char_value                                |#########
#########|     INT        num_value,k1,k2,h                         |#########
#########|     ULONG      offset                                    |#########
#########|     CHAR(3)    num_fld                                   |#########
#########| ENDDEF                                                   |#########
#########|                                                          |#########
#########| IF .NOT. fb_open( h, "database.dbf", &B_READ )           |#########
#########|     RETURN                                               |#########
#########| ENDIF                                                    |#########
#########| fb_seek( h, header()+1, &F_BEGIN )  && the "+1" is       |#########
#########|                                     && for the           |#########
#########|                                     && delete field      |#########
#########| k1 = fb_read( h, char_value, 4 )                         |#########
#########|                                                          |#########
#########|     *--- seek from the current position + 8 to           |#########
#########|     *    get the "NUMBER" field.                         |#########
#########|                                                          |#########
#########| offset = fb_seek( h, 8, &FB_CURRENT )                    |#########
#########| k2 = fb_read( h, num_char, 3 )                           |#########
#########| num_val = i_str( num_char )                              |#########
#########+----------------------------------------------------------+#########
##############################################################################

See Also: fb_close fb_eof() fb_open() fb_read() fb_write()

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson