有没有办法将数组传递给外部 REXX 程序?

Posted

技术标签:

【中文标题】有没有办法将数组传递给外部 REXX 程序?【英文标题】:Is there a way to pass an array to an external REXX program? 【发布时间】:2019-12-18 17:16:55 【问题描述】:

我尝试过的:

程序A:

call PROGRAMB ARRAY val1 val2 

程序 B:

PARSE arg ARRAY val1 val2 
/* test to see if ARRAY is passed successfully */
/* len1 equals the length of ARRAY */
interpret "len1 = "ARRAY".0"
say 'len1: ' len1 
DO i=0 TO len1
    say 'current line: '
    interpret "say "ARRAY".i"
END;

预期结果:

    len1 相当于数组的长度。例如,如果 ARRAY = [1,2,3],则 len 将等于 3。 应该打印数组的每个成员。

实际结果:

    len1 相当于“JOBCARD.0”而不是实际长度。 由于 IRX0041I(错误的算术转换),程序在 for 循环中失败并且不打印出成员/

我尝试过的解决方案:

https://www.bde-gmbh.de/tipps-tricks/zos-rexx/how-to-pass-stems-as-procedure-arguments-in-rexx/

但此方法仅适用于将数组传递给同一程序中的函数。

【问题讨论】:

【参考方案1】:

您不能将词干(数组)传递给外部 Rexx EXEC。研究使用 NEWSTACK、PUSH、QUEUE、QUEUED()、PULL、DELSTACK。这些都记录在 TSO/E Rexx Reference 的关键字指令、内置函数和 TSO/E 外部函数部分中

【讨论】:

以上是关于有没有办法将数组传递给外部 REXX 程序?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 REXX 编辑 ps 数据集并在特定行之后插入字符串?

有没有办法在反应外部的函数内部传递变量

有没有办法将多个数组传递给 PHP json_encode 并用 jQuery 解析它?

将参数从 ISPF DSLIST 自动传递到 REXX 脚本

如何将字符串向量传递给execv

如何将数组从 PLC 程序传递到 TwinCAT 中的 C 模块实例?