1

我有一个字符串“RAJA”,它应该作为十六进制数据写入文件。以下是帮助我描述问题的示例代码。案例(一)

name = 'RAJA'   
name = C2X(name) /* Hex value = '52414A41' */
QUEUE name.

输出到文件:52414A41

但是如果我们直接使用 HEX 数据写入文件,它就可以正常工作 Case(b)

name = '52414A41'X
QUEUE name.

输出到文件:RAJA

问题:如果 (a) 使用 C2X 将字符串转换为 HEX,它返回 HEX 数据字符串而不是 HEX 数据。但是在 case(b) 中,因为 HEX 数据被写入文件。我的问题是如何让 REXX 解释器知道 case(a) 中的变量“名称”具有 HEX 数据并将其写为 HEX。希望我把问题说清楚了。让我走向解决方案。

4

3 回答 3

2

您还可以使用 x2c 功能

说x2c(52414A41)

显示 RAJA

对于大多数功能,如 c2x 反转字符

IE

说 d2c(c2d(10))

说 c2d(d2c(10))

说 x2d(d2x(10))

全部显示 10

于 2009-12-30T10:51:39.873 回答
0

最后,我可以解决上面描述的 MYSELF 问题。REXX 中有一个名为 'INTERPRET' 的内置函数,它可以帮助我们构建动态 REXX 命令。这是单个语句,使我成功运行了模块:

INTERPRET name_hex "= '" || name || "'X"

它动态地创建一个 REXX 语句:

name_hex = 'name'X

这将告诉 REXX 解释器将 'name' 中的字符串作为 HEX 数据。

厉害对了!希望我让你明白了..请回复我你的问题..

于 2009-12-30T06:47:46.360 回答
0

我不认为你对你在这里尝试做的事情有很强的把握......运行下面的 REXX 程序,然后找出它为什么显示它所做的事情。一旦你做到了,你可能会想出一个更好的解决你的十六进制/字符问题的方法。


name = 'RAJA'
say name            /* RAJA */
name = C2X(name)
say name            /* 52414A41 */
name = X2C(name)
say name            /* RAJA */
name = '52414A41'x
say name            /* RAJA */
name = X2C('52414A41')
say name            /* RAJA */
name = '52414A41'
INTERPRET "name = '" || name || "'X"
say name            /* RAJA */
于 2010-01-04T20:34:36.897 回答