将隐式变量从外部定义的文件复制到 IBM i 上的结构中

Copy implicit variables from an external defined file into a struct on IBM i

我有一个 PF,在 rpgle 程序中引用。记录格式名称为 "ROETBL".

FROEPF     UF A E           K DISK

现在,我根据生成的(内部)输入规范创建一个具有不同名称("copy" 的 C_)的字段结构:

DC_ROETBL       E DS                  EXTNAME(ROEPF:ROETBL) PREFIX(C_)

我应该怎么做:

C                   MOVE      ROETBL        C_ROETBL

编译器抱怨 RNF7260:因子 2 中的 ROETBL 对于给定操作无效。

因为我读到可以在 RPGLE 中利用 C 库中的函数,所以我也尝试使用 memcpy 进行利用。不幸的是,我手边没有确切的错误消息,但我也无法编译源代码,因为 ROETBL 不是指向结构的指针。

对此有何评论?我使用的操作系统版本为V4R5.

Mike 说得对,EVAL-CORR 旨在简化数据从 DS 到 DS 的复制...

但是 EVAL-CORR 是在 v5r4 中添加的...此外,它实际上是为处理合格的数据结构而设计的,并且 I/O 直接进入 DS;而不是独立的全局变量。

您的另一个问题是认为格式名称 (ROETBL) 是一种类似于 DS 的内存结构,但事实并非如此。

尝试定义另一个不带前缀的 DS,这样文件字段将被组织到一个 DS 中。

 fROEPF     UF A E           K DISK

 d rec           e ds                  extname(roepf)

 d rec2          e ds                  extname(roepf) prefix(c_)

 c                   eval      rec2 = rec
 c                   eval      *INLR = *ON
 c                   return