我必须为外部实体准备一个文件,并且该实体使用带有COBOL的IBM主机并要求该文件在EBCDIC中编码.我在C#中创建文件.我想这是一个由两部分组成的问题......首先,下面的代码是否足以确保文件以他们可以读取的方式生成?
StreamWriter sw = new StreamWriter(@"C:\EBCDICFileEquivalent.txt", false, Encoding.GetEncoding(37));
Run Code Online (Sandbox Code Playgroud)
其次,文件中的几个字段需要压缩十进制,格式为S(9)13 COMP-3.由于我已经指定了EBCDIC编码,我可以使用以下方法将十进制数字(例如1234500000001)写入文件:
sw.WriteLine("1234500000001C");
Run Code Online (Sandbox Code Playgroud)
...并在生成的文件中正确显示?
从未对EBCDIC或COMP-3做过任何事情.
我有庞大的主机文件,该文件中有一些打包的数字.我想知道如何使用java解压缩后续数字?
打包数字: ?
我阅读了解包数字的教程,并找到了以下规则来计算解包数字所需的字节数:
total_number_of_bytes = (no. of digits + 1) / 2
我写了以下代码来解压缩数字:
public String unpackData(String packedData, int decimalPointLocation) {
String unpackedData = "";
char[] characters = packedData.toCharArray();
final int impliedPositive = 15;
final int positiveNumber = 12;
final int negativeNumber = 13;
for (int currentCharIndex = 0; currentCharIndex < characters.length; currentCharIndex++) {
byte[] unpackedDigits = unpackByte((byte) characters[currentCharIndex]);
if(currentCharIndex == (characters.length - 1)) {
if(unpackedDigits[1] == impliedPositive || unpackedDigits[1] == positiveNumber) {
unpackedData += String.valueOf(unpackedDigits[0]);
} else if(unpackedDigits[1] == …Run Code Online (Sandbox Code Playgroud) 我问了一个关于转换 COMP 字段的问题,我没有得到任何答案。
我希望堆栈溢出可以帮助我解决这个问题。
我成功地将 COMP-3 转换为十进制。我需要您的帮助,使用任何高级编程语言,但最好使用 Java 或 c#.net,将解压缩的十进制数转换回 COMP-3。
在将cobol程序转换为C#时,我遇到了COMP:
03 Var1 PIC X(4).
03 Var2 PIC X(3).
03 Var3 PIC X(3).
03 Var4 PIC X(4).
03 Var5 PIC X(16).
03 Var6 PIC X(4).
03 Var7 PIC X(2).
03 Var8 PIC X.
03 Var9 PIC X(4).
03 Var10 PIC X(16).
03 Var11 PIC S9(7)V9(2) COMP.
03 Var12 PIC S9(7)V9(2) COMP.
03 Var13 PIC S9(7)V9(2) COMP.
03 Var14 PIC S9(7)V9(2) COMP.
03 Var15 PIC S9(7)V9(2) COMP.
03 Var16 PIC S9(7)V9(2) COMP.
03 Var17 PIC S9(7)V9(2) COMP.
03 Var18 PIC S9(7)V9(2) …Run Code Online (Sandbox Code Playgroud) 我正在创建一个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以获取有关打包字段的信息.我理解如何使用压缩字段,但不太了解如何打包字段.谢谢!