Ibm midrange 打包数据自由格式RPG

Ibm midrange 打包数据自由格式RPG,ibm-midrange,rpgle,rpg,Ibm Midrange,Rpgle,Rpg,我负责一个IBMi系列。现在我得给一些新东西编程序。我必须从一个内部描述的文件中读取一些数据,并在我的程序中使用它,但它包含压缩的十进制数据,我不太确定如何处理它 如何在程序中读取压缩的十进制数据 甚至可以通过%SUBST来实现吗?使用数据结构来定义数据布局,将数据读入结构中,就可以完成所有设置 或者,您可以使用DDS定义文件,并将平面文件中的数据复制到DDS文件中(使用FMTOPT(*NOCHK)),您的问题是,具体是什么?@EJoshuaS我如何读取程序中的压缩信息?甚至可以通过%SUBST

我负责一个IBMi系列。现在我得给一些新东西编程序。我必须从一个内部描述的文件中读取一些数据,并在我的程序中使用它,但它包含压缩的十进制数据,我不太确定如何处理它

如何在程序中读取压缩的十进制数据


甚至可以通过%SUBST来实现吗?

使用数据结构来定义数据布局,将数据读入结构中,就可以完成所有设置


或者,您可以使用DDS定义文件,并将平面文件中的数据复制到DDS文件中(使用FMTOPT(*NOCHK))

,您的问题是,具体是什么?@EJoshuaS我如何读取程序中的压缩信息?甚至可以通过%SUBST实现吗?请澄清此问题。我假设“压缩”数据是指来自可能是位压缩的网络源的数据,而不是压缩的RPG数据类型?或者,您可能是指以字节对齐而不是32位或64位字对齐的压缩数据结构吗?这实际上可以使用您试图解析出的数据结构的示例。我也不知道你为什么把“自由形式的RPG”放在标题里。您知道如何在非自由格式中执行此操作,并且想知道如何将其转换为自由格式吗?不,使用
%subst()
无法直接处理压缩的十进制数据<代码>%subst()用于字符数据,压缩十进制是一种数字格式,如整数或浮点。我说不直接是因为您可以将压缩数据子串到包含压缩字段的数据结构中,并以这种方式使用它,但David在其回答中提供了处理此问题的最佳方法。无需使用RPG手动解析字段。使用一个程序描述的文件并声明输入规范上的字段,就像过去的好日子一样。