配列とテーブル
今回は配列とテーブルについてです。
RPG内では、配列とテーブルの2種類が存在します。言葉的には同じ様ですが、明確な違いがあります。
配列とテーブルは以下の点で異なります。
1.テーブル名はTABで始まる
2.コンパイル時及び実行時だけにロードできる。(要は、C仕様書内でテーブル内に値を代入する事はできない)
3.テーブルの内容はLOKUP命令を使用して取得する。
(テーブルの使用例)
RPG:
-
H Y/ 1
-
E TAB01 1 3 5 TAB02 20 配列名はTABで始まる
-
C*
-
C 'C0001' LOKUPTAB01 TAB02 80 TAB01を"C0001"で検索
-
C *IN80 IFEQ *ON
-
C MOVELTAB02 W#AAAA LOKUP命令"C0001"に列に該当する"C-----Z"の内容がTAB02には含まれている
-
C ENDIF 結果,W#AAAAは"C------Z"が代入される
-
C*
-
C SETON LR
-
C RETRN
-
**
-
A0001A-------Z A0001がTAB01 A-------ZがTAB02
-
B0001B-------Z
-
C0001C-------Z
こんな事はできません。(指標による処理)
RPG:
-
C MOVELTAB01,X W#AAAA
-
C TAB01,X IFEQ 'ABC'
-
C MOVEL'ABC' TAB01,X
上記のテーブルの処理を配列で行うと以下の様になります。
RPG:
-
H Y/ 1
-
E T#A01 1 3 5 T#A02 20
-
C*
-
C Z-ADD1 X
-
C 'C0001' LOKUPT#A01,X 80
-
C *IN80 IFEQ *ON
-
C MOVELT#A02,X W#AAAA
-
C ENDIF
-
C*
-
C SETON LR
-
C RETRN
-
**
-
A0001A-------Z
-
B0001B-------Z
-
C0001C-------Z
TrackBack URL :
Comments (0)