- 论坛徽章:
- 0
|
你可以参考 RPG REFERENCE这本书啊,我觉得关于E表(也就是数组)和I表写的比较清楚。
下面我说一下我个人的理解,我也刚刚接触400,仅供参考。
数组应该有三种表示方法:编译期数组,运行期数组,还有前运行期数组。
编译期数组: E ARR1 1 20 80
这种定义数组的方法就是编译期数组。注意此种数组在1的那个位置上必须有值,表示一行中有几个数组元素。
这种数组初始化的方法就是在程序的结尾处显示的赋值,就像这样一样
0387.01 ** C
0387.02 THE DRAWING IS INVALID.
0387.13 THE DATE IS INVALID.
0387.14 THE FIELD CAN NOT BE BLANK.
0387.15 THE FIELD MUST BE BLANK.
0387.16 THE DRAWING NO.WAS CANCELED.
0388.00 C*****
数组的前我个元素分别是这5条记录,其余的记录都是空格,如果是数字型的话,就是0.
运行期数组: E ARR2 200 15 这种定义方法是运行期数组,注意,这种定义方法和编译期数组的定义方法比较像,但是有一点不同,就是运行期数组没有那个“1”,即每行包括元素的数量。所以,运行期数组那个位置必须不能填写任何值。
运行期数组初始化由程序完成。也可以通过I表进行初始化,通过I表初始化又分为全局初始化和局部初始化。具体请参考REFERENCE,我手头没书,记得不太清了。
最后的就是前编译期数组了,这个要和F表配合使用,在F表中声明为T类型(P,S,F,T...),为数组声明一个关联的文件,然后在E表中引入这个文件。此种数组赋值是通过数组文件赋值的。
再说I表,I表有4种功能,用的比较多的就是定义DS。定义的DS主要是拆分字段和合并字段,所以一个DS可能只给最上面的一个总的字段赋值了,下面的子字段也就都赋值了,这就是字段的拆分,合并也是同一个道理。
I表还有个功能就是定义常量了, 比如 I ’dsljaldsald' c FIELDA 这样FIELEDA就被赋值了。
I表的其他2个功能和外部描述文件,程序描述文件有关,我就不太清楚了
我也是初学,以上意见仅供参考,如有错误,敬请指教 |
|