我需要将数字数据(在输入中存储为字符)转换为有符号或无符号的压缩格式。我可以使用"PD“格式转换为压缩/签名格式,但我很难获得未签名的压缩数据。
例如,我需要一个像14723这样的ZD数字转换为:
042
173
使用PD,我得到了这个(这很好):
0173
042C
有什么建议吗?我们在这家商店没有COBOL语言,而是依靠SyncSort来处理这些数据转换。我没有在SyncSort中看到"PK“选项,但我以前错过了一些东西!
发布于 2013-11-12 03:27:42
所以你不想要一个压缩十进制,它总是在低位的半字节中有一个符号(即使F代表无符号)。您需要二进制编码的十进制(BCD)。
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(1,5,ZD,MUL,+10,TO=PD,LENGTH=4)),
IFTHEN=(WHEN=INIT,BUILD=(1,3))
//SORTIN DD *
14723 将以垂直十六进制形式提供给您:
042
173要使用现有的BCD,请查看字段类型PD0。
https://stackoverflow.com/questions/17298593
复制相似问题