カーソルがセットされているSFLレコードのRRNを
取得する方法を紹介する。
最初は伝統的な方法で多くの古くからのRPG開発者であれば
ご存知かもしれない。
_
0003.00 FPGM201FM CF E WORKSTN 0004.00 F SFILE(SFREC01:RRN1) 0005.00 F INFDS(INFDS) : 0031.00 D INFDS DS 0032.00 D NUM_ROWS 152 153B 0 0033.00 D NUM_COLS 154 155B 0 0034.00 D NUM_RCDS 156 159I 0 0035.00 D*( カーソル の行と桁の取り込み ) 0036.00 D LINE 370 371B 0 : 0592.00 C EXSR CURSOR 0593.00 C EXSR LINCHK : 0614.00 C***************************************************** 0615.00 C CURSOR BEGSR 0616.00 C***************************************************** 0617.00 C LINE DIV 256 LIN 3 0 ガメン の行数 0618.00 C MVR POS 3 0 ガメン の桁数 0619.00 C ENDSR 0620.00 C****************************************************** 0621.00 C LINCHK BEGSR 0622.00 C****************************************************** 0623.00 C STRGYO ADD GYOSU ENDGYO 2 0 0624.00 C SUB 1 ENDGYO 0625.00 C* カーソル は開始行と終了行とのあいだにあるか 0626.00 C LIN COMP STRGYO 50 50 0627.00 C 50LIN COMP ENDGYO 5050 0628.00 C* 94: カーソル が適切な位置になかった 0629.00 C N50 SETON 9967 0630.00 C 99 GOTO LINEND 0631.00 C LIN SUB STRGYO RRN1 0632.00 C ADD TOPRRN RRN1 :
[解説]
これはカーソルの位置を読み取ってSFLの開始行と終了行から
カーソルが位置づけられていた位置を読み取ってから
計算するという重労働を必要とするものである。
次回はこれを近代的なスマートな方法で解決する方法を紹介する。
_