问一个AS 400 关于数组的问题

发布于 2022-08-25 02:35:10 字数 295 浏览 12 评论 9

问题 1 :AS 400 中的数组如何定义多维的

问题 2 :能不能 给数组下标是变量的情况下赋值 如下
         eval     dimdate(n) = name
              其中 n 为s型   name变量

谢谢 帮忙解答下
提前祝大家春节快乐

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

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

发布评论

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

评论(9

凉薄对峙 2022-09-04 16:36:01

新人,我是来膜拜高手的!

谁的年少不轻狂 2022-09-04 16:29:12

回复 6# seraph0019

    可以是具体值,也可以是变量给赋值,关键看程序

遗失的美好 2022-09-04 15:50:44

本帖最后由 passthru 于 2010-02-22 01:45 编辑

eval      arv(i)=‘xxxxxxxxxx’
中的  'xxxxxxxxxx’ 可不可以是一个变量而不是具体值
seraph0019 发表于 2010-02-21 09:58

f MyFile      if      e                            disk
f                                                      rename(rec:rec01)         
*
d RecDsSet          ds                        likeds(RecDs) dim(100)
*
d RecDs               ds                        likerec(rec01)
*
d  s@i                  s               3s  0   inz
       ...
       setll key rec01;
       reade key rec01 RecDs;            
       dow not %eof(MyFile) and s@i <100;
               RecDsSet(s@i) =  RecDs;
               reade key rec01 RecDs;            
               s@i = s@i + 1 ;
        enddo;
        ....

满天都是小星星 2022-09-04 13:37:39

rpgiv的数组功能是很强的。经过d表的定义,可以定义使用多维的数组。
最经常用到的是DIM直接定义一维的数组 ...
passthru 发表于 2010-02-11 13:47

    likeds 这个是新了解的 所以比较好理解
但是 4楼写的东西有点看的费劲了

谢谢解答

草莓味的萝莉 2022-09-04 12:51:34

回复  seraph0019

    春节快乐!在数据区定义出定义数组
例如:
  D arv        S                ...
huangxkst 发表于 2010-02-11 10:34

     eval      arv(i)=‘xxxxxxxxxx’
中的  'xxxxxxxxxx’ 可不可以是一个变量而不是具体值

黯淡〆 2022-09-04 11:41:55

呵呵,交流就是要把自己总结的、可靠的东西进行交流。忌讳就事论事。

苍白女子 2022-09-03 18:10:20

一个二维的数组定义和使用:
D Array                S             20    Dim(5)
D ArrPointer        S                 *   Inz(%Addr(Array))      
D ArrOptRow       DS                   Dim(5) Qualified        
D                                                Based(ArrPointer)        
D   ArrOptCol                       3     Dim(4)                  
  *
d c@Var               s          100     varying
d s@Row             s              2s 0 inz
d s@Col               s             2s  0 inz
/free
      ....
      s@Row = 1;
      s@Col   = 1;
      c@Var = 'Hello, World!';
      ArrOptRow(s@Row).ArrOptCol(s@Col) = c@Var;
      ....
  /end-free

断桥再见 2022-09-01 19:23:03

本帖最后由 passthru 于 2010-02-17 09:53 编辑

rpgiv的数组功能是很强的。经过d表的定义,可以定义使用多维的数组。
最经常用到的是DIM直接定义一维的数组;以及一维的DS。楼上的已经写出代码说明定义和使用一维的数组。这里顺便说一下一维的DS:

d RecDsSet             ds                          likeds(RecDs) dim(100)
*方法一
d RecDs                  ds                          qualified
    fld1                                       10        inz
    fld2                                         3s  0  inz
    fld3                                        50       inz
    .....

*方法二
fMyFile  if  a               disk
f                                                     rename(rec:rec01)
*  
d RecDsSet             ds                             likeds(RecDs) dim(100)
* 2)OS/400 V5R4以上版本
dRecDs                ds                               likerec(rec01)   

*方法三 OS/400 V5R3以下版本
dRecDs                ds                               extname(MyFile)

逐鹿 2022-09-01 05:49:07

回复 1# seraph0019

    春节快乐!在数据区定义出定义数组
例如:
  D arv        S                 10a     dim(10)
  使用
  eval      arv(i)=‘xxxxxxxxxx’
这里I表示数组的下标,dim表示定义数组的长度,10a表示数组中的每个元素的长度是10个字符

提示:请多看看reference文档,中文的可能没有,英文的比较全面!

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