我需要使用 RPGLE 读取文件,然后在显示文件中显示该文件的某些字段的十六进制值。
有人可以告诉我如何在rpgle程序中获取字段的十六进制值并将其显示在显示文件中吗?
如有任何建议,我们将不胜感激
RPG IV 没有任何内置的 HEX() 函数...
但是,SQL 可以。
dcl-s myCharString varchar(100);
dcl-s myHexString varchar(200);
exec sql
values hex(:myCharString) into :myHexString;
您可以选择使用 MI 将十六进制转换为字符 (CVTHC)* 指令,使用像这样的原型...
dcl-pr CharToHex ExtProc('cvthc');
hexResult Char(65534) Options(*VarSize);
charInput Char(32767) Options(*VarSize);
charNibbles Int(10) Value;
End-Pr;
dcl-s myCharString varchar(100);
dcl-s myHexString varchar(200);
CharToHex ( myHexString : myCharString : %len(myCharString) * 2 );
*注意这个名字是反直觉的,相反的操作是Convert Character to Hex (CVTCH)。
这是 Jon Paris 撰写的一篇好文章,在 RPG 中练习安全十六进制,介绍了 MI 功能。