Read Me - Common Public License V1.0 - Copyright Notice(©)

seek


         +- = -+                  +-CHAR-+
>>-seek(-+-----+-offset-+-------+-+------+-)-------------------><
         +- < -+        +-READ--+ +-LINE-+
         +- + -+        +-WRITE-+
         +- - -+

Sets the read or write position to a given number ( [offset] ) within a persistent stream. If the stream is open for both reading and writing and you do not specify READ or WRITE, both the read and write positions are set.

Note

See for a discussion of read and write positions in a persistent stream.

To use this method, you must first open the stream object (with the OPEN method described previously or implicitly with an input or output operation). One of the following characters can precede the [offset] number:

=

Explicitly specifies the [offset] from the beginning of the stream. This is the default if you supply no prefix. For example, an [offset] of 1 means the beginning of the stream.

<

Specifies [offset] from the end of the stream.

+

Specifies [offset] forward from the current read or write position.

-

Specifies [offset] backward from the current read or write position.

The [seek] method returns the new position in the stream if the read or write position is successfully located, or an appropriate error message.

The following is a description of the options for [seek]:

READ

specifies that the read position be set.

WRITE

specifies that the write position be set.

CHAR

specifies that positioning be done in terms of characters. This is the default.

LINE

specifies that the positioning be done in terms of lines. For non-binary streams, this is potentially an operation that can take a long time to complete because, in most cases, the file must be scanned from the top to count the line-end characters. However, for binary streams with a specified record length, the new resulting line number is simply multiplied by the record length before character positioning. See for a detailed discussion of this issue.

Note

If you do line positioning in a file open only for writing, you receive an error message.

Stream object - SEEK method

stream_name~seek("=2 read")
stream_name~seek("+15 read")
stream_name~seek("-7 write line")
fromend  = 125
stream_name~seek("<"fromend read)

Read Me - Common Public License V1.0 - Copyright Notice(©)