指定位置でファイルを開くには、
OPEN DATASET 命令の AT POSITION オプションを以下のように使用します。構文
OPEN DATASET <dsn> FOR .... IN MODE] AT POSITION <pos>.
この命令でファイル
<dsn> を開き、読込や書込を行う位置を <pos> に設定します。位置 <pos> はファイルの先頭からバイト単位でカウントされます。ファイルの先頭より前の位置を指定することはできません。位置
<pos> の指定に意味があるのは、主にバイナリモードで作業する場合です。なぜならば、テキストファイルの物理的な表現は OS に依存するからです。DATA FNAME(60) VALUE 'myfile'.
DATA NUM TYPE I.
OPEN DATASET FNAME FOR OUTPUT AT POSITION 16.
DO 5 TIMES.
NUM = NUM + 1.
TRANSFER NUM TO FNAME.
ENDDO.
OPEN DATASET FNAME FOR INPUT.
DO 9 TIMES.
READ DATASET FNAME INTO NUM.
WRITE / NUM.
ENDDO.
OPEN DATASET FNAME FOR INPUT AT POSITION 28.
SKIP.
DO 2 TIMES.
READ DATASET FNAME INTO NUM.
WRITE / NUM.
ENDDO.
この例の出力は以下のようになります。
0
0
0
0
1
2
3
4
5
4
5
この例では、ファイル“
myfile ”を初期設定のバイナリモードでオープンしています。開始位置は書込モードでは 16 、読込モードでは 28 となっています。上記の例で示すように、整数書込と読込の際の位置指定は、桁数が 4 で割り切れる場合に有効です。