Ibm midrange ILE RPG以自由格式移动自由RPG

Ibm midrange ILE RPG以自由格式移动自由RPG,ibm-midrange,rpgle,rpg,Ibm Midrange,Rpgle,Rpg,谁能告诉我这行代码是如何在免费的RPG C MOVEL TEST TESTFELD 使用此表格: %SUBST(TESTFELD: 1: len ) = TEST ; 将“len”变量设置为要用TEST替换的值的长度,或者简单地对长度进行硬编码。使用以下形式: %SUBST(TESTFELD: 1: len ) = TEST ; 将“len”变量设置为要用TEST替换的值的长度,或者简单地对长度进行硬编码。给定的语句显然意味着

谁能告诉我这行代码是如何在免费的RPG

C                   MOVEL     TEST          TESTFELD 
使用此表格:

%SUBST(TESTFELD: 1: len ) = TEST ;
将“len”变量设置为要用TEST替换的值的长度,或者简单地对长度进行硬编码。

使用以下形式:

%SUBST(TESTFELD: 1: len ) = TEST ;

将“len”变量设置为要用TEST替换的值的长度,或者简单地对长度进行硬编码。

给定的语句显然意味着建议使用以下RPGIV语法:

 C                   MOVEL     TEST          TESTFELD 
据我所知,随着自由格式规则的更新迭代,[IBM I 7.2 ILE RPG]编译器不再需要
/free
规范,因此固定格式语句可以精确显示如图所示;i、 e.无需找到替代操作码或定义新的代码块来替换MOVEL在当前上下文中提供的任何代码

在对编译器进行增强之前,只需在固定格式代码行前面加上/end-free编译器指令,然后在固定格式代码行后面加上/free编译器指令,即可重新建立自由格式;同样,没有理由用自由格式重写语句:

  /end-free
 C                   MOVEL     TEST          TESTFELD 
  /free
请注意,作为MOVEL替代方案的任何单个赋值都可能需要比一个操作代码单独作用更重要的功能。这是因为MOVEL使用隐式转换,而其他操作代码可能无法提供旧的固定格式操作代码的完全支持功能[甚至可能无法提供相同的结果]。文件表明,有许多可能的替代品

奇怪的是,%SUBST不是上述替代品之一,但对于具有固定长度字符串变量的最简单场景,用户2338816所示的%SUBST中的接收变量很可能就是所需的全部。指


将固定格式操作码保留为内联的另一种方法是将工作移动到过程中,在该过程中,即使使用相同的操作码,也可以有效地执行相同的代码。如果要转换代码,这可能是一个必须的选择,同时还要消除所有与转换代码内联的固定格式规范;在程序中使用固定格式的操作码可能并不可取,但为了确保复杂操作码的效果完全相同,这通常是最安全的,而不是试图对所有细微差别进行编码。尽管可以说是另一种选择,因为/COPY或a/INCLUDE并不比固定格式更漂亮[明显地或至少看起来不合适,内联到自由形式的计算规范],这些编译器指令都不可能比只内联旧操作码更好。

给定的语句,显然是指建议使用以下RPGIV语法:

 C                   MOVEL     TEST          TESTFELD 
据我所知,随着自由格式规则的更新迭代,[IBM I 7.2 ILE RPG]编译器不再需要
/free
规范,因此固定格式语句可以精确显示如图所示;i、 e.无需找到替代操作码或定义新的代码块来替换MOVEL在当前上下文中提供的任何代码

在对编译器进行增强之前,只需在固定格式代码行前面加上/end-free编译器指令,然后在固定格式代码行后面加上/free编译器指令,即可重新建立自由格式;同样,没有理由用自由格式重写语句:

  /end-free
 C                   MOVEL     TEST          TESTFELD 
  /free
请注意,作为MOVEL替代方案的任何单个赋值都可能需要比一个操作代码单独作用更重要的功能。这是因为MOVEL使用隐式转换,而其他操作代码可能无法提供旧的固定格式操作代码的完全支持功能[甚至可能无法提供相同的结果]。文件表明,有许多可能的替代品

奇怪的是,%SUBST不是上述替代品之一,但对于具有固定长度字符串变量的最简单场景,用户2338816所示的%SUBST中的接收变量很可能就是所需的全部。指

将固定格式操作码保留为内联的另一种方法是将工作移动到过程中,在该过程中,即使使用相同的操作码,也可以有效地执行相同的代码。如果要转换代码,这可能是一个必须的选择,同时还要消除所有与转换代码内联的固定格式规范;在程序中使用固定格式的操作码可能并不可取,但为了确保复杂操作码的效果完全相同,这通常是最安全的,而不是试图对所有细微差别进行编码。尽管可以说是另一种选择,因为/COPY或a/INCLUDE并不比固定格式更漂亮[明显地或至少看起来不合适,内联到自由形式的计算规范],但这些编译器指令都不可能比只内联旧的操作码更好。

请参阅

本文描述了将Move、MoveL和MoveA操作码转换为自由格式所涉及的问题

通过对编译器的增强,删除对C-Spec语句的/free要求并不具有侵入性

我的推荐:

保留旧的现有移动操作码,但新代码应以自由形式编写

最后的想法:

请看一下“UPGRPGSRC-将RPG源代码升级并现代化为RPGLE/Free”,可从for FREEEE获得。他们还为IBMi提供了其他有用的工具

请注意,在发布此答案时,ProjeX网站已关闭。

请参阅

本文描述了将Move、MoveL和MoveA操作码转换为自由格式所涉及的问题

通过对编译器的增强,删除对C-Spec语句的/free要求并不具有侵入性

我的推荐:

保留旧的现有移动操作码