FileSeek PowerScript function
Description
Moves the file pointer to the specified position in a file
whose size does not exceed 2GB. The file pointer is the position
in the file at which the next read or write begins.
Syntax
1 |
<span>FileSeek</span> ( <span>file#</span>, <span>position</span>, <span>origin</span> ) |
Argument |
Description |
---|---|
file# |
The integer assigned to the file when |
position |
A long whose value is the new position |
origin |
The value of the SeekType enumerated
|
Return Values
Long. Returns the file position after
the seek operation has been performed. If any argument’s
value is null, FileSeek returns null.
Usage
Use FileSeek to move within a binary file
that you have opened in stream mode. FileSeek positions
the file pointer so that the next FileReadEx or FileWriteEx occurs
at that position within the file.
If origin is set to FromBeginning!, and
the file is not opened in stream mode, the byte-order mark is ignored
automatically. For example, suppose the file’s hexadecimal
display is FF FE 54 00 68 00 69 00 73 00
,
the following example illustrates the behavior:
1 |
long ll_pos<br> <br>// after the following statement, the file pointer is <br>// at 68, not 54, and ll_pos = 2, not 4<br>ll_pos = FileSeek( filenum, 2, FromBeginning!)<br> <br>// ll_pos = 2, not 4<br>ll_pos = FileSeek( filenum, 0, FromCurrent!)<br> <br>// ll_pos = 2, not 4<br>ll_pos = FileSeek( filenum, -6, FromEnd!) |
The FileSeek function cannot handle files
whose size exceeds 2GB. Use FileSeek64 to move
the file pointer in larger files.
Examples
This example positions the file pointer 14 bytes
from the end of the file:
1 |
integer li_FileNum |
1 |
li_FileNum = FileOpen("emp_data") |
1 |
<span>FileSeek</span>(li_FileNum, -14, FromEnd!) |
This example moves the file pointer from its current
position 14 bytes toward the end of the file. In this case, if no
processing has occurred after FileOpen to affect
the file pointer, specifying FromCurrent! is the same as specifying FromBeginning!:
1 |
integer li_FileNum |
1 |
li_FileNum = FileOpen("emp_data") |
1 |
<span>FileSeek</span>(li_FileNum, 14, FromCurrent!) |