如何使用REXX将HEX字符串作为HEX写入文件

时间:2009-12-25 05:13:58

标签: file-io hex mainframe rexx

我有一个字符串'RAJA',它应该作为HEX数据写入文件。 以下是帮助我描述问题的示例代码。 情况(a)

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

输出到文件: 52414A41

但是,如果我们直接使用HEX数据写入文件,它的工作正常 情况(b)

name = '52414A41'X
QUEUE name.

输出到文件: RAJA

问题:如果(a)使用C2X将字符串转换为HEX时,它会返回HEX数据字符串而不是HEX数据。但是在情况(b)中,HEX数据被写入文件。我的问题是如何让REXX解释器知道情况(a)中的变量“name”具有HEX数据并将其写为HEX。希望我明白这个问题。 Lemme走向解决方案。

3 个答案:

答案 0 :(得分:2)

您也可以使用x2c功能

说x2c(52414A41)

显示RAJA

对于大多数功能,例如c2x,反转字符会反向执行

说d2c(c2d(10))

说c2d(d2c(10))

说x2d(d2x(10))

全部显示10

答案 1 :(得分:0)

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

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

它动态创建REXX语句:

name_hex = 'name'X

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

太棒了吧!希望我能让你明白......请回答我的问题..

答案 2 :(得分: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 */
相关问题