关于MAINFRAME bin文件,如何读取/比较任何bin文件?

时间:2015-02-19 11:28:11

标签: wpf mainframe

我打算在.NET WPF中创建一个示例应用程序,它可以读取MAINFRAME bin文件,并排比较文件并提取文件内容而不会丢失任何格式。

以下问题对我创建算法非常有帮助。

  1. 典型MAINFRAME bin文件的一般编码标准是什么?
  2. 我们如何读取bin文件,是否需要使用任何工具?
  3. 我们如何找到两个MAINFRAME bin文件之间的差异?
  4. 我们是否能够在不使用任何工具的情况下识别MAINFRAME bin文件 - 这意味着来自文件本身?
  5. MAINFRAME生成/读取哪种输出文件,意味着它仅限于生成“.bin”文件或任何其他扩展名?
  6. 请同时向我提供任何一个开源编辑器,它可以读取/写入/编辑MAINFRAME bin文件,它可以作为入门者。

    记录编辑器是我用于某些bin文件的应用程序之一,尽管它似乎与某些bin文件不兼容。

1 个答案:

答案 0 :(得分:6)

没有“MAINFRAME bin文件”这样的东西 - 大型机数据集既没有文件类型的概念,也没有文件扩展名的概念。将文件从大型机传输到某些Windows / Unix机器后,有些人使用.bin - 扩展名来表明内容应该被视为二进制文件。

你应该了解一些关于大型机文件的事情(我主要谈的是固定记录长度的连续数据集,最基本的数据集):

  1. 没有通用的文​​件格式,通常每个大型机程序都会滚动自己的记录描述并将其写入文件。要理解文件,您必须知道记录描述。
  2. 您可以使用任何能够处理任意字节序列的工具来读取这些文件 - 但同样:要使用它,您必须以某种方式解释这些字节。
  3. 大型机数据集没有一些换行符来表示一个数据记录的结束和下一个数据记录的开头。用于传输的大多数数据集每个记录都有固定的字节数,因此读取程序必须在适当的位置拆分读取的字节。 (还有不同的recordlength文件,但我暂时不会这样做。)
  4. 大型机上的字符数据通常使用与PC平台上使用的一些与ASCII相对的EBCDIC-characterset进行编码。因此,您必须将这些转换为基于PC的处理
  5. 其他部分可能包含压缩十进制数字数据 - 每个数字占半个字节(“半字节”),最后一个半字节表示数字的符号。例如。 -4387可能会以04 38 7D的形式存储在3个字节中。
  6. 您的文件可能还包含原始二进制或浮点数据 - 我们无法分辨,您将不得不询问该文件的创建者。
  7. 总结一下:

    • 您无法通过一些开箱即用的工具识别或处理它们
    • 你必须知道记录描述才能做任何有用的事情
    • 你将不得不应对大量特定于大型机的东西

    对于大多数用例,将原始二进制文件从大型机传输到PC是不可行的。更好地在大型机上创建基于EBCDIC文本的文件,使用filetransfer-tool将它们转换为ASCII,同时传输和处理文本数据。