rpg 3中E表常数数组是怎样赋值的呢!

发布于 2022-08-27 15:08:20 字数 1699 浏览 11 评论 9

各位大大,
有一个程序中间
E表定义为:

0051.01      C*------------------------------------------------
0051.02      E                    ARR1    1  20 80
0051.03      E*                   ARR2      200 15
0051.04      I*
0051.05      C*------------------------------------------------

程序结束为:

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************************************************************

问题是我在整个程序中没有发现 arr1是怎么赋值进去的.怎么知道aRR1中存储的是什么呢.

[ 本帖最后由 sy_huang 于 2009-9-21 13:40 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

苏璃陌 2022-08-30 00:00:52

ARR1的前两个元素是VAPD003S-0和VAPD003S-0,其余的元素是空

在下边是ARR2的前7个元素

那两个星号分开了这两个数组

[ 本帖最后由 giggsone 于 2009-9-22 14:31 编辑 ]

君勿笑 2022-08-29 23:59:20

谢谢, giggsone.

Arr1 & Arr2 如此定义,

0052.05      E                    ARR1    1  20 10
0052.06      E                    ARR2    1  20 40
按照你说的程序最下边开始前20行是ARR1的值,以后就是ARR2的值.那下边赋值中ARR1 AND ARR2中是什么值呢?望指点 !

0189.00 **
0190.00 VAPD003S-02
0191.00 VAPD003S-05
0191.01 **
0192.00 Record already inactive
0193.00 Revision To DCC is blank
0194.00 Date To DCC is blank
0195.00 Create User is blank
0196.00 Reserved Date is blank
0197.00 Invaild date entry for DCC date
0198.00 Invaild date entry for Creation date
****************** End of data ***************************************

[ 本帖最后由 sy_huang 于 2009-9-21 13:38 编辑 ]

懵少女 2022-08-29 23:59:17

SDS是系统数据结构,通过设定不同的位置来截取不同的值

瑶笙 2022-08-29 23:57:47

0052.05      E                    ARR1    1  20 10
是不是代表 ARR1 中一行中有一个ELEMENT 共20个每个是10 LENGTH呢?
这个是正解
‘1’的那个位置只要写上值了,就表示这个数组是常量数组,数组内容在程序的最下边。
程序开始,数组里就会自动有值

0052.05      E                    ARR1    1  20 10
0052.06      E                    ARR2    1  20 40
这个表示这两个数组都是常量数组,赋值是按照顺序来的,程序最下边开始前20行是ARR1的值,以后就是ARR2的值
你可以写个小程序看看结果,把1换成2或者别的试试,就明白了

九八野马 2022-08-29 23:56:46

谢谢 nINERI!

---------------------------------------------------
E数组有二种,一种是程序最后定义,不需要手动赋值
             另一种是需要手动赋值的
---------------------------------------------------

能否举例说明两者有那些不同.即是怎么区分E数组的定义.

N30指示器我已明白,但是关于I表的定义又是怎样的?以及程序体是怎么调用的呢?

再次感谢NINERI ....请再次帮忙下!!!

一桥轻雨一伞开 2022-08-29 23:56:05

E数组有二种,一种是程序最后定义,不需要手动赋值
             另一种是需要手动赋值的

#DRWNO    CHAINVAPDH2R              30
如果 该记录在档案中存在,则30 OFF ,即N30
如果不存在,则30 ON,即30

不知道这样清楚吗?

猥︴琐丶欲为 2022-08-29 23:31:53

多谢上面的兄弟,

0052.05      E                    ARR1    1  20 10
是不是代表 ARR1 中一行中有一个ELEMENT 共20个每个是10 LENGTH呢?

另只要是
** 开头
**结束中的所有字符就可以自动赋予上面两个数组呢?ARR1  & ARR2?
最好是有有关与RPG3方面的书籍.我现在有好多CODE看不懂.

0052.02      FVAPD03MFUF  E           K        DISK
0052.03      FZPAL01  IF  E           K        DISK
0052.04       *
0052.05      E                    ARR1    1  20 10
0052.06      E                    ARR2    1  20 40
0052.07      ISDS        SDS
0052.08      I                                     *STATUS  #ERROR
0052.09      I                                        1  10 PGMID
0052.10      I                                      244 253 WSID
0052.11      I                                      254 263 USER
0052.12      I            DS
0052.13      I                                        1   7 NEWID
0052.14      I                                        1   3 PREFIX
0052.15      I                                        4   70NUMBER

由于现在几乎找不到RPG3方面REFERENCE的书籍.我对I表也不不理解.不知道程序怎么调用 sds 中的 变量.  
能否解答下面另两个问题.还有就是能否帮忙解答下 面代码的 N30指示器的详细怎么运做的的.

  C           #DRWNO    CHAINVAPDH2R              30
  C*
  C  N30                MOVE 'C'       IFLAG
  C  N30                UPDATVAPDH2R
  C   30                WRITEVAPDH2R
  C*

淑女气质 2022-08-29 23:11:05

ARR1是常量数组,内容是程序最下边的东西
在レコード上写的那个1,表示每行有一个元素

[ 本帖最后由 giggsone 于 2009-9-17 13:25 编辑 ]

醉梦枕江山 2022-08-29 21:09:28

自动赋值,内容应该就是你程序尾部看到的那些东西吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文