标签: packed-decimal

C#编码带有压缩小数的EBCDIC文件

我必须为外部实体准备一个文件,并且该实体使用带有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做过任何事情.

c# encoding decimal ebcdic packed-decimal

7
推荐指数
1
解决办法
3422
查看次数

如何使用Java解压缩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)

ascii mainframe ebcdic packed-decimal

7
推荐指数
1
解决办法
1万
查看次数

如何将未压缩的十进制数转换回 COMP-3?

我问了一个关于转换 COMP 字段的问题,我没有得到任何答案。

我希望堆栈溢出可以帮助我解决这个问题。

我成功地将 COMP-3 转换为十进制。我需要您的帮助,使用任何高级编程语言,但最好使用 Java 或 c#.net,将解压缩的十进制数转换回 COMP-3。

c# java cobol packed-decimal

5
推荐指数
1
解决办法
6307
查看次数

如何在C#中将Cobol COMP字段输出转换为可读小数?

在将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)

c# cobol packed-decimal

3
推荐指数
1
解决办法
1388
查看次数

SQL如何获得COMP-3压缩十进制?

我正在创建一个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以获取有关打包字段的信息.我理解如何使用压缩字段,但不太了解如何打包字段.谢谢!

sql ascii ssis comp-3 packed-decimal

2
推荐指数
1
解决办法
3990
查看次数

标签 统计

packed-decimal ×5

c# ×3

ascii ×2

cobol ×2

ebcdic ×2

comp-3 ×1

decimal ×1

encoding ×1

java ×1

mainframe ×1

sql ×1

ssis ×1