Progress
Language Reference


SEEK Statement

Interfaces
OS
SpeedScript
All
All
Yes

Positions the file pointer to a user-defined offset in a text file. This statement does not require you to close and reopen the file.

SYNTAX

SEEK { INPUT | OUTPUT | STREAM stream }
  TO { expression | END } 

INPUT

If you specify INPUT, the SEEK statement positions the file pointer in the unnamed input stream.

OUTPUT

If you specify OUTPUT, the SEEK statement positions the file pointer in the unnamed output stream.

STREAM stream

If you specify STREAM stream, the SEEK statement positions the file pointer in the named input or output stream. If you do not name a stream, Progress uses the unnamed stream.

TO expression

An expression whose value is an integer that indicates the byte location to position the file pointer. If expression equals 0, the file pointer is positioned to the first byte in the file. If you want to position the pointer to the last byte in the file, but you do not know the offset, use END.

END

Positions the pointer to the last byte in the file.

EXAMPLE

Since text file formats differ on each machine, the SEEK function does not necessarily return a number that is meaningful to anyone, but it is meaningful to the SEEK statement. With the exception of SEEK to 0 or SEEK TO END, any address used in the SEEK statement is only guaranteed to behave consistently if the address was previously derived from the SEEK function. Therefore, an expression such as SEEK TO SEEK (INPUT) -n might work differently on different operating systems. Record delimiters must be new-lines on UNIX, and carriage-return/linefeed pairs on all others.

r-seek.p
/* This procedure seeks to the end-of-file, collects the seek address,
and writes a record. The record is subsequently retrieved using the SEEK
statement on the stashed seek address. */

DEFINE VAR savepos AS INT.
DEFINE VAR c       AS CHAR FORMAT "x(20)".
OUTPUT TO seek.out APPEND NO-ECHO.
savepos = SEEK(OUTPUT).
PUT UNFORMATTED "abcdefg" SKIP.
OUTPUT CLOSE.
INPUT FROM seek.out NO-ECHO.
SEEK INPUT TO savepos.
SET c.
DISPLAY c.
INPUT CLOSE. 

NOTES

SEE ALSO

DEFINE STREAM Statement, INPUT FROM Statement, OUTPUT TO Statement, SEEK Function


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095