(摘自网友niuhua77的回复贴,摘抄以备忘,勿怪)
数组分类:
1.Compile time array(编译期数组);
2.Prerun-time array(运行前数组);
3.Run-time array(运行期数组)。
1.编译期数组:
E ARR1 1 20 80
这种定义数组的方法就是编译期数组。注意此种数组在1的那个位置(Entries per Record)上必须有值,表示一行中有几个数组元素。
这种数组初始化的方法就是在程序的结尾处显示的赋值,以**开头,或为分隔符.
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.
2.运行期数组:
E ARR2 200 15
这种定义方法是运行期数组,注意,这种定义方法和编译期数组的定义方法比较像,但是有一点不同,就是运行期数组没有那个“1”,即每行包括元素的数量。所以,运行期数组那个位置必须不能填写任何值。
运行期数组初始化由程序完成。也可以通过I表进行初始化,通过I表初始化又分为全局初始化和局部初始化。
例:
F*****************************************************************
E* Head Title Array
E HDS 5 8
E CDT 5 8 0
I*****************************************************************
I* USER DATA AREA
I* HDS(05)
I DS
I 1 40 HDS
I 1 8 HDS01
I 9 16 HDS02
I 17 24 HDS03
I 25 32 HDS04
I 33 40 HDS05
I*****************************************************************
3.前编译期数组:
这个要和F表配合使用,在F表中声明为T类型(P,S,F,T...),为数组声明一个关联的文件,然后在E表中引入这个文件。此种数组赋值是通过数组文件赋值的。
再说I表,I表有4种功能,用的比较多的就是定义DS。定义的DS主要是拆分字段和合并字段,所以一个DS可能只给最上面的一个总的字段赋值了,下面的子字段也就都赋值了,这就是字段的拆分,合并也是同一个道理。
I表还有个功能就是定义常量了, 比如 I ’dsljaldsald' c FIELDA 这样FIELEDA就被赋值了。
I表的其他2个功能和外部描述文件,程序描述文件有关,我就不太清楚了.
阅读(739) | 评论(1) | 转发(0) |