我在.NET中使用Jon Skeet的EBCDIC实现来读取从大型机系统使用FTP以二进制模式下载的VSAM文件.它在这种编码中非常适合读/写,但它没有任何东西可以读取压缩十进制值.我的文件包含这些,我需要解压缩它们(显然是以更多的字节为代价).
我怎样才能做到这一点?
我的字段定义为 PIC S9(7)V99 COMP-3.
我有一系列ASCII平面文件从大型机进来,由C#应用程序处理.引入了一个带有Packed Decimal(COMP-3)字段的新Feed,需要将其转换为数值.
使用ASCII传输模式通过FTP传输文件.我担心二进制字段可能包含将被解释为非常低的ASCII代码或控制字符而不是值 - 或者更糟糕的是,可能在FTP进程中丢失.
更重要的是,字段被读作字符串.我可以灵活地解决这个问题(即某种流),但业务会给我带来阻力.
该要求为"从HEX转换为ASCII",但显然没有产生正确的值.任何帮助,将不胜感激; 只要您能够解释转换过程的逻辑,它就不必是特定于语言的.
我正在创建一个SSIS包来读取一系列copybook文件中的解压缩数据.我不确定对以下字段定义的正确解释,并希望有人知道:
FIELD-NAME-1 PIC S9(15)V9(3)COMP-3.
FIELD-NAME-2 PIC S9(3)V9(8)COMP-3.
FIELD-NAME-3 PIC S9(3)V9(6)COMP-3.
数据以固定宽度文本存储.上述字段的数据具有以下长度:
FIELD-NAME-1:19 FIELD-NAME-2:11 FIELD-NAME-3:9
我不确定如何解释小数位和符号.
任何帮助将不胜感激.
亲切的问候,火腿
我正在创建一个ASCII输出文件包含一些信息,我的两个字段要求日期和时间在压缩十进制字段(COMP-3).我正在使用SQL和SSIS生成我的文件.
Field Name Format Length Picture
Date YYYYMMDD 5 S9(8) C-3
Time HHMMSS 4 S9(6) C-3
Run Code Online (Sandbox Code Playgroud)
我搜索了多个站点,但仍然无法弄清楚如何将日期/时间转换为压缩十进制字段.任何帮助将不胜感激.
提供了以下站点http://www.simotime.com/datapk01.htm#TablePackedDecimal以获取有关打包字段的信息.我理解如何使用压缩字段,但不太了解如何打包字段.谢谢!
理论上,我研究了 comp-3 中的字符结尾告诉它是正值还是负值
这不适用于大型机中的新版本 COBOL 吗?
01 WS-COMP3 PIC S9(5) COMP-3 VALUES -12.
DISPLAY WS-COMP3
OUTPUT: 0001K
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,我得到的字符结尾为 K 而不是 D 值 K 是 -2 0 ==> } -1 ==> J, -2 ==> K ....
我有信息,一个PIC S9(4)
字段是用 comp-3 编码的。我还有一个包含数据的数据文件(在我的例子中是关于客户的)。当我使用记事本 ++ 打开数据文件时,它会向我显示诸如“DLE”、“BEL”或“NUL”之类的字符,这将我引向此表。首先,你能向我解释一下,“comp-3”是做什么的?以及如何使用例如 c# 将其转换回人类可读的格式/数据(将两个文件作为输入)?