• Demo requested

    From Finnigann@VERT to Digital Man / All on Wed Oct 31 08:35:00 2001

    If you can, show some source code with as many of the following
    functions as possible.

    Their use is not entirely clear to me.

    FGET_LENGTH

    FSET_LENGTH

    SEEK_SET

    SEEK_CUR

    SEEK_END

    FGET_POS <int_var> <int_var>
    args: handle offset

    FSET_POS <int_var> <int_var or #> [#]
    args: handle offset whence



    ... Q. What is a row of rabbits walking backwards? A. A receding hare-line
    --- MultiMail/MS-DOS v0.40
    Synchronet Bits-N-Bytes BBS - One Hellova BBS -- telnet://bnb.dtdns.net
  • From Amcleod@VERT to Finnigann on Tue Nov 6 12:51:02 2001
    RE: Demo requested
    BY: Finnigann to Digital Man / All on Wed Oct 31 2001 03:35 pm

    SEEK_SET

    SEEK_CUR

    SEEK_END

    These aren't functions. hey are just convenient definitions that can be used in the "whence" portion of FSET_POS (see below).

    FGET_POS <int_var> <int_var>
    args: handle offset

    This allows you to find the "current" position in a file and remember it (in nan INT variable).

    FGET_POS inh marker

    takes the current position in the file with handle "inh" and store it in INT "marker". Say you had previously done some reads from the file, and you were now "located" at position 1234 -- your next read will begin at byte 1234. THen "marker" will now contain the number 1234.

    FSET_POS <int_var> <int_var or #> [#]
    args: handle offset whence

    You can use this to return to a previously marked spot in the file. Suppose you did

    FSET_POS inh marker SEEK_SET

    you will re-position the file "pointer" back to byte 1234 so you can read
    that data again (for whatever reason). You can use ANY number in the offset position, not only things that you FGET_POS'd. Suppose you want to go to record 15 in a file of records each 45 bytes long. You can compute the offset with simple math and FSET_POS to that record.

    The "whence" argument allows you to seek from the beginning of the data-set (SEEK_SET), from the current position (SEEK_CUR) or from the end of the data-set (SEEK_END) so to go to 40 bytes before the end of the file you can


    FSET_POS inh 40 SEEK_END

    and you're there. Marking and returning to the same spot is very useful when you are locking data so as to allow multi-user access without conflict. You are about to read a record, so when you are at the point of reading you FLOCK the data, and FGET_POS the position. Then you read the data as much as you like, and when you are done you FSET_POS back to the position and then FUNLOCK the data.
    ---
    Synchronet Vertrauen Home of Synchronet telnet://vert.synchro.net