问题标签 [control-language]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2650 浏览

c - 在 iSeries 上从 CL 调用 write() C API

我正在尝试用控制语言编写一个程序,该程序在调用使用它的 Java 实用程序之前在 IFS 中创建和填充配置文件。

我已成功调用 open() 和 close() API 来(重新)创建文件,但对于我来说,我无法通过 write() 将某些内容放入文件中。到目前为止,这一切都是一次学习经历,但是在 write() 调用上没有错误消息,我无法看到我的问题所在。

这几乎肯定是我处理变量的方式,但调试会话表明它们应该是它们应该是的。

我曾尝试以与 &ERRNO 和 &ERRNO_PTR 相同的方式声明 &LINE 和 &LINE_PTR 变量,但是当我尝试将值分配给 &LINE 时,这给了我一个指针未设置错误。我认为这是因为首先访问了 &ERRNO_PTR,而 &LINE_PTR 并非如此。无论如何,这可能是一个红鲱鱼。

RTVMSG 命令是一种查找字符串长度(不包括尾随空格)的技巧。

我已经在调试中运行了代码,在调用 write() 之前 &LINE 包含我所期望的内容,&LINELEN 也是 35。然后调用 write() 并且不会导致错误,但行中也不存在文件。该文件仍然是空的。

最后一点。该程序的所有参数当前都未使用,但为了完整性,我已将其保留,以防我对它们做了一些愚蠢的事情。所以本质上,可以忽略前两个声明块。

任何帮助表示赞赏。

0 投票
1 回答
3717 浏览

ibm-midrange - 创建接受对象名称作为参数的 iSeries 命令

我正在尝试在 iSeries 上创建一个新命令,其中一个参数必须是使用标准 LIBRARY/FILE MEMBER 语法的文件名,例如

甚至

我试过了 :

  • 使用带有 *CHAR 类型的 FILE 参数创建 PARM 语句
  • 使用 ELEM 语句创建特殊类型

但我找不到如何创建一个接受限定对象名称值的参数,例如与 CPYTOIMPF 一起使用的 FROMFILE 参数。

更新

JamesA 的答案工作正常,但不知何故我在我的 CL 变量中得到了两个额外的字符:

命令

CL

0 投票
1 回答
1676 浏览

ibm-midrange - 是否可以在 CL 程序中将十六进制格式字符转换回十进制?

我有一个 RPG 程序 A 和一个 CL 程序 B。A 以数据结构作为入口参数调用 B。此数据结构包含字符以及压缩小数。B 中的入口参数被声明为字符变量,因此当从 A 传入入口参数时,十进制值以十六进制格式结束。我需要它们在 B 中的原始十进制值。有没有办法将这些十六进制字符串转换回 B 中的十进制?

0 投票
0 回答
1533 浏览

ibm-midrange - OPNQRYF 中的 QRYSLT 选项在程序中定义后如何在执行期间为空?

我正在尝试在 CL 程序中使用 OPNQRYF 从给定文件中选择一些记录。查询选择字符串在 OPNQRYF 语句中定义。但在执行过程中,由于 QRYSLT 为空,抛出了 CPF9899 消息。我已经重新编译了几次程序,问题仍然存在。然后我尝试先在字符变量中定义查询选择,然后将其分配给 QRYSLT。这次它奏效了。这怎么发生的?我在同一个程序中定义了 QRYSLT 的其他一些 OPNQRYF 语句,它们运行良好。还有其他可能干扰 OPNQRYF 的东西吗?

这个不起作用:

而这个确实:

0 投票
7 回答
8312 浏览

ibm-midrange - 从 COBOL 或 CL 调用 Web 服务

我正在使用 AS400,我被要求从绿屏调用 Web 服务。

这怎么可能达到?

任何示例 COBOL 或 CL 代码都会非常有帮助。

0 投票
2 回答
163 浏览

sql - 在不同的 LPAR 上删除和更新

是否可以从开发 lpar 计算 rpgle 程序中的文件成员删除。

并完全在不同的 lpar 中对不同的文件执行更新?

如何在一个程序中执行 lpars 的设置?这可能吗?请指导。

0 投票
3 回答
1119 浏览

ibm-midrange - CL 程序中的堆栈实现(OS400/iSeries)

我开始在 IBM 系统 i 上使用 CL 进行编程。我的任务是使用 CL 语言实现 RPN 计算器。通常,此计算器使用堆栈。但我不知道必须在 CL 中实现它。有人可以给我一些建议吗?也许 *PTR 变量是解决方案,但有人可以给我一个如何使用它的例子吗?

提前感谢 JS

编辑:

CL语言是我的导师强加的。

我的程序应该接收来自用户的符号(数字/数字,数学运算的符号)。
收到每个签名后,程序应该分析收到的内容,然后采取一些行动,根据伪代码:

我的问题是如何实现或替换这个堆栈。需要以 LIFO 顺序到达元素,我不知道该结构最终将包含多少个元素。

0 投票
2 回答
931 浏览

ibm-midrange - 淘汰库对象的 CL(IBM i 系列)程序?

我有四个库,每个库都有一组不同的程序选择。不幸的是,我无法使用 SQL 删除库中未使用的程序,因为我需要停用它们(因此它们不会留在我们的客户端服务器上)。

有没有办法为此制作一个 CL 程序?我们的高级程序员说做不到,但我想在被迫手动淘汰 2300 个对象之前探索每一种可能性。

它最初是 Aldon 变更管理软件中的一个功能,我确实有一个 SQL 查询来选择所需的对象。

0 投票
3 回答
1075 浏览

ibm-midrange - CL CALL 语句中传递参数的类型

在运行 i/OS 6.1 的 iSeries 上,我有一个正在清理的 CL 程序。在这个程序中有一堆剪切和粘贴形式的代码:

自然,当我看到这个时,我的第一个想法是,让我们将该端口号移动到一个变量中并消除所有重复的代码块,所以我最终得到:

当我运行此代码时,它失败了,因为事实证明 JCHKSTS 程序需要一个字符串作为其第三个参数(它在内部转换为整数)和 &ENVPORT 变量,尽管它被声明为字符串并用字符串初始化值,显然没有作为字符串传递。(从 JCHKSTS 中检查参数显示端口值的值为 MAXINT。)

我通过将值从 更改为 的廉价权宜之计解决了这个问题'6500''6500 '但我不明白为什么它一开始就不能正常工作;IBM 文档说:

如果从 CL 程序或 ILE CL 过程进行调用,则可以传递程序变量,在这种情况下,接收程序必须声明该字段以匹配调用 CL 程序或 ILE CL 过程中定义的变量。

这对我来说肯定是,接收程序需要一个字符串,我将变量声明为 6 个字符的字符串,它应该可以工作。

那么,我错过了什么吗?我应该如何声明变量,以便接收程序将其视为数字的字符串表示形式,而不是实际数字?

0 投票
1 回答
124 浏览

ibm-midrange - 如何在命令源定义中处理 TYPE(*PNAME)

  1. 如何使 TYPE(*PNAME) 参数为:

    • 必需的
    • 有一个默认值
    • 初始长度为 10
  2. 如何处理提示字段长度的增加,

    • *PNAME 类型的提示字段的长度可以用“&”增加。
    • RPGLE需要是命令处理程序(CPP)

示例,命令源定义: