POINT_LUN Procedure
Allows the current position of the specified file to be set to any arbitrary point in the file.
Usage
POINT_LUN, unit, position
Input Parameters
unit — The file unit (logical unit number) for which the file position will be set. This keyword can be set to either unit or –unit. If –unit is specified, the current position of the file pointer is returned in the output parameter position.
position — A positive integer specifying the position of the file pointer as a byte offset from the start of the file.
Output Parameters
position — If –unit is specified, the current position of the file pointer (in bytes) is returned in the position parameter. See the Example section.
Keywords
None.
Discussion
POINT_LUN is for the PV-WAVE programmer who wants explicit control over positioning for reading or writing within a given file. It is seldom used for general file I/O operations.
OPENR, 1, 'File.dat', /Block
POINT_LUN, 1, 25B
Example
In this example, POINT_LUN is used to move about within an unformatted file of integers.
; Create integer vector of length 100 initialized to values
; of its one-dimensional subscripts.
a = INDGEN(100)
; Open a file called ptlun.dat for writing.
OPENW, unit, 'ptlun.dat', /Get_Lun
; Write 100-element integer vector as unformatted binary data
; to the file ptlun.dat.
WRITEU, unit, a
POINT_LUN, -unit, pos
; Retrieve and display the current position within ptlun.dat.
PRINT, 'Current offset into ptlun.dat is', pos, ' bytes.'
; PV-WAVE prints: Current offset into ptlun.dat is 200 bytes.
; Rewind the file to the beginning.
POINT_LUN, unit, 0
; Read two integers from beginning of the file into a two-element
; integer array, b.
b = INTARR(2)
READU, unit, b
PRINT, b
; PV-WAVE prints: 0 1
; Since two integers were just read, each of length 2 bytes, the
; current position within the file should be 4 bytes offset from
; beginning. Retrieve current position.
POINT_LUN, -unit, pos
PRINT, 'Current offset into ptlun.dat is ', $
STRTRIM(pos, 2), ' bytes.'
; PV-WAVE prints: Current offset into ptlun.dat is 4 bytes.
; Close the file and free the file unit number.
FREE_LUN, unit
See Also
FREE_LUN, FSTAT, GET_LUN, OPEN (UNIX), OPEN (Windows), READ, WRITEU, LFPOINT_LUN
For more information, see the section Positioning File Pointers in Chapter 8 of the PV‑WAVE Programmer’s Guide.