问题标签 [comp-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
280 浏览

java - 如何将 comp3 文件解压缩为可读格式?

我在解压缩从遗留系统(主机)提取的文件中的 comp3 数字时遇到问题。我尝试了由堆栈溢出成员@Jose Ventura 给出的代码,但它没有用。我试图打印解压后的数据,但没有打印出来。我对这个概念完全陌生(comp 3)。所以你们能帮我完成这个任务吗

下面是我的代码


0 投票
2 回答
2309 浏览

java - 无法在java中将comp 3解压缩为数字

我在互联网上引用了一个代码来将 comp 3 解压缩为 java 中的数字。我试图将示例 comp3 文件传递​​给代码,但没有得到正确的解包数据。我得到了一些奇怪的数字。我是这个概念的新手(comp 3),所以你们能帮我解决这个问题。提前致谢

下面是我的代码



我传递的 Comp3 文件有值x019F

转换后,我得到了解压缩的数据783031394

0 投票
1 回答
280 浏览

java - EBCDIC 解包 comp-3 数据在 Java 中返回 40404**

我已经使用下面链接中提供的解包数据逻辑用于 java 如何使用 Java 解包 COMP-3 数字? 但是对于源中的空数据,它会返回 404040404,就像在 Java 解包代码中一样。我知道这是 ebcdic 中的空间,但是如何通过处理这个空间来解包或避免它。

0 投票
2 回答
729 浏览

java - 使用 comp-3 和其他数据解码加密的 cobol 文件

我有一个非人类可读格式的 cobol 文件:它有 comp-3 格式的数据(数字),还有其他字符串和字符。我有转换 comp-3 格式的算法,但是当我将它应用于文件中的字节数组时,所有字符都被转换并且输出不是正确的。考虑到 comp-3 数据和普通数据,我怎样才能正确解码整个文件?

我将从下面的文件中添加一些行以及我的 comp-3 算法:

Notepad++ 中的文件如下所示(第一行):

AH4820øêæÉ* 200 DBAG DBAG 0
AED S EUR AED S KAS°ê¤ 2 ø TN Øê¤ ð §É! SN ê¤

Notepad++ 中的 ASCII 到 HEX 转换的文件看起来像这样,即使这不应该是正确的:

200F41483438323002C3B8C3AA01C3A6 01C3892A202020202020202020202020 20203230302044424147204442414720 3020202020202020202020202020

0 投票
0 回答
205 浏览

c++ - C++ 解释 Cobol“Comp-3”值

我正在制作一个 C++ 程序,给定一个 Cobol 副本和一个顺序文件,将顺序文件的内容绘制到一个表中。

问题在于,例如,Cobol Comp-3 变量中的“+12345”值的结构如下:

结果如下:

如果我在 C++ 中读取字符串并将其转换为 HEX,我会丢失第一个字节,并且与我对 Cobol 的预期存在一些差异,因此我无法读取其他字段。我怎么能从文本文件中读取清晰的字节仍然认为它是一个字符串?

0 投票
1 回答
490 浏览

c# - 读取 8 个字符的压缩十进制 (Comp-3) 数值;但持有 13 位数字并转换为 13 位数值

我正在寻找代码来读取压缩十进制 (Comp -3) 数值的文本文件,该数值是在主机系统中创建的,为 8 个字符,但包含压缩十进制格式的 13 位数字。

我遇到了下面的代码

但上面的代码没有说坏迹象蚕食。

谁能确认我是否正确阅读

注意:它不是重复的,因为我正在寻找可以读取文件并将参数传递给 Unpack 方法的代码。

作为参考,我添加了文件中的数据的样子:

图片

0 投票
0 回答
140 浏览

oracle - EBCDIC 数据加载到 oracle

我需要将其加载到 oracle 中的表中。需要在 oracle 和 SQL Loader 代码中定义表数据类型。最多 500 次是可以的,如果我可以读取要加载的文件中的数据,那么我可以应用其他 oracle 概念(如 Unpivot)从列转置到行。至少,如果您可以为数据类型定义和示例数据的 sql 加载器提供创建表脚本。这将是一个很好的起点。Cobol CopyBook 与

数据样本

0 投票
1 回答
96 浏览

c# - 在 .Net 中解压 Comp-3 时遇到问题。Comp-3 值中除符号字符外还有字母字符

我正在尝试使用 .NET 将大型机 EDI 文件导入回 SQL Server,但在解压缩某些 comp-3 字段时遇到问题。

该文件来自我们的一位客户,我有以下字段的 Copy Book 布局:

我将只关注这 3 个字段,因为所有其他字段都是 PIC(X) 并且已经是 Unicode 值。我在 Max Vagner 创建的工具Ebcdic2Ascii的帮助下加载了所有内容。我只是对“解包”功能进行了一些修改,并将其修改为

为了让我得到以下示例数据:

这是我根据对 Comp-3 值的理解为解包这些值而创建的示例代码:

运行示例代码后,我能够得到以下结果:

如您所见,我只能正确获得以下 3 个值:

从此来源引用:http ://www.3480-3590-data-conversion.com/article-packed-fields.html 。我对 Comp-3 的理解如下:

COBOL Comp-3 是一种二进制字段类型,它使用称为二进制编码十进制或 BCD 的表示法将(“打包”)两个数字放入每个字节中。

二进制编码十进制 (BCD) 数据类型正如其名称所暗示的那样 - 它是以十进制(以十为基数)表示法存储的值,并且每个数字都是二进制编码的。因为一个数字只有十个可能的值(0-9)。

最低有效字节的低半字节用于存储数字的符号。这个半字节只存储符号,而不是数字。“C”十六进制为正,“D”十六进制为负,“F”十六进制无符号。

因为我知道 BCD 应该只有 0-9 的值,并且最后应该只有一个字符,可以是“C”、“D”或“F”。我不知道如何解压缩以下值:

这些值除了符号字符之外还有其他字符。我有一种感觉,数据已经被转换,因为如果不是,那么除非你应用编码,否则应该没有可读的值。我仍然不确定这一点,并希望对此有任何见解。谢谢。

0 投票
1 回答
115 浏览

dataframe - 如何使用 Cobrix 从带有 COMP 字段的 cobol 和 ebcdic 文件构建数据框?

我首先尝试使用cobrix从大型机源构建一个简单的数据框,以了解它如何处理 ebcdic 文件。

我的输入看起来像这样。(十六进制):313030100C3230301A0C。如果我用 Notepad++ 快速打开:raw_data

我使用这些选项来读取我的数据并将其转换为数据框。我已经尝试了所有支持 ebcdic 编码的值,但均未成功。我还尝试更改S9(3).为.cobol 文件999.或更改为9(3)..cobol 文件,但没有更改任何内容。

我的输出看起来不像我期望的那样。

它适用于“经典”ascii 编码并且没有“COMP-3”。你能帮我找出为什么我的 df 看起来不像预期的那样吗?

非常感谢 !

0 投票
2 回答
151 浏览

cobol - 签名 Comp-3 数据的 COBOL 中的 DISPLAY 显示意外输出

从理论上讲,我研究了comp-3中字符的结尾告诉它是正值还是负值

  • C - 表示正值
  • D - 表示负值

这不适用于大型机中新版本的 COBOL 吗?

对于上面的代码,我将字符结尾作为 K 而不是 D 值 K 是 -2 0 ==> } -1 ==> J, -2 ==> K ... 的替换。