有人知道Windows的Milsted rexx吗?开放式REXX?

时间:2011-07-15 07:40:06

标签: queue rexx

CA的自动化点产品具有嵌入式rexx解释器。在使用CMS之前,我已经使用过其他Rexx解释器。我正在尝试访问外部数据队列,以允许AP rexx脚本调用并从其他语言的程序中获取数据。现在CA已经明确表示它不是Object rexx或OORexx而是“Milstead”(原文如此)rexx。我使用Neil Milsted的Uni-Rexx(如果你正在阅读的话,这是一个很好的Neil),它实现了我所需要的rxqueue。

解析版本名称级别 说“rexx是”名称“和”级别 说“rexx util is”RxFuncQuery(“SysUtilVersion”) 得到: rexx是REXX:Open-REXX:299:Open-REXX:ASCII:MultiThread:DynamicLink和4.00 2008年2月4日

07/15/2011 08:27:19 rexx util是30

我的google-fu在这里失败了,我不断回到相同的网站 那么有谁知道这个特定的Rexx以及如何让它运行非rexx代码并获得输出?我真的不想成为临时文件的I / O绑定。

2 个答案:

答案 0 :(得分:4)

如果您想要从外部程序(可执行文件)输出到REXX,您可以使用POPEN功能将命令的标准输出重定向到外部数据队列。然后,您可以按照以下说明操作队列:

  • pull(parse pull) - 从队列顶部提取数据
  • 推送 - 将数据添加到队列顶部
  • 队列 - 将数据添加到队列的底部
  • 排队 - 返回队列中剩余行数

一个简单的例子:

call popen ('dir /?')
lines = QUEUED()

say "Number of output lines:" lines
do i = 1 to lines
   pull line
   say "Line #"||i||":" line
end

答案 1 :(得分:3)

更现代的方法具有错误诊断的额外好处:

cmd = 'dir /?'
address COMMAND cmd with output stem cmdout. error stem cmderr.

if cmderr.0 <> 0 then do  /* an error has occurred executing this command */   
  do i = 1 to cmderr.0
    say "Error text line" i": '"cmderr.i"'"
    end
  end
else do i = 1 to cmdout.0   /* no error has occurred so just process the output */
  say "Line #"i":'"cmdout.i"'"
  end