advr.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
SEEK Function, SEEK Statement Details
  Summary  Details  Example                Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
 SEEK(filenumber&)
 SEEK [#]filenumber%, position&
 
 Usage Notes (SEEK Function)
   ■ SEEK returns a value between 1 and 2,147,483,647, inclusive (equivalent
     to 2^31 -1).
 
   ■ When used on random-access files, SEEK returns the number of the next
     record read or written.
 
   ■ For files opened in binary, output, append, or input mode, SEEK
     returns the byte position in the file where the next operation is
     to take place. The first byte in a file is 1.
 
   ■ SEEK returns zero when used on an ISAM table or on Visual Basic devices
     (SCRN, CONS, KYBD, COMn, LPTn, PIPE) that do not support SEEK.
 
   ■ The following code prints a message indicating whether the last read
     or write was done in the first, second, or final third of the file:
 
         SELECT CASE (SEEK(1))
             CASE IS < .333*LOF(1)
                 PRINT "In first third of file."
             CASE .333*LOF(1) TO .667*LOF(1)
                 PRINT "In second third of file."
             CASE IS >= .667*LOF(1)
                 PRINT "In last third of file."
         END SELECT
 
 Usage Notes (SEEK Statement)
   ■ The argument filenumber% is an integer used in the OPEN statement to
     open the file. See: OPEN Statement
 
   ■ The argument position& is a numeric expression that indicates where
     the next read or write occurs. The position must be between 1 and
     2,147,483,647, inclusive (equivalent to 2^31 -1).
 
   ■ The first byte in a file is at position 1; the second byte is at
     position 2, and so on. After a SEEK, the next file I/O operation starts
     at the byte position specified by SEEK.
 
   ■ If you attempt a SEEK operation to a negative or zero position, Visual
     Basic generates the error message, "Bad record number." Performing a
     file write after doing a SEEK beyond end of file extends the file.
 
   ■ Visual Basic leaves the file position unchanged when you use SEEK on an
     ISAM table or on Visual Basic devices (SCRN, CONS, KYBD, COMn, LPTn,
     PIPE) that do not support SEEK.
 
   ■ Record numbers on a GET or PUT override the file positioning done by
     SEEK.