ここでは任意の長さのファイルを汎用的に処理する方法を紹介する。
様々などのようなファイルでも読み取る機能を実現するにはファイルを外部記述として
読み取ることはできないので、十分大きなレコード長の内部記述ファイルとして定義しなければならない。
----------------------------------------------------------------------------------------- 0001.00 H DFTNAME(TESTVAR1) DATEDIT(*YMD/) 0002.00 F********** 可変長ファイルの読取り *********************************** 0003.00 FDATAFL IF F 9999 DISK EXTFILE(FILE_LIB) 0004.00 F USROPN 0005.00 F********************************************************************** 0006.00 D FILE_LIB S 48A 0007.00 IDATAFL AA 10 0008.00 I 1 9999 DATA 0009.00 C EVAL FILE_LIB = 'QTRFIL/SHOHIN' 0010.00 C OPEN DATAFL 99 0011.00 C *IN99 IFEQ *OFF 0012.00 C DO *HIVAL 0013.00 C READ DATAFL 50 0014.00 C 50 LEAVE 0015.00 C MOVEL DATA DSP40 40 0016.00 C DSP40 DSPLY 0017.00 C END 0018.00 C CLOSE DATAFL 0019.00 C END 0020.00 C '*EOF' DSPLY ANS 1 0021.00 C SETON LR 0022.00 C RETURN -----------------------------------------------------------------------------------------
DATAFL
は 9999
バイト長のファイルとして定義しているので、このプログラムの実行の直前に
OVRDBF DATAFL TOFILE( ..... )
を実行してやれば、どのようなファイルでも読み取ることができる。
このサンプルは読み取り用であるが、この方法であれば、もちろん更新やレコードの追加も行うことができる。