【问题标题】:Convert files created in Cobol .IDS and .IDX and read from c#转换在 Cobol .IDS 和 .IDX 中创建的文件并从 c# 读取
【发布时间】:2014-12-11 16:14:32
【问题描述】:

一位客户问我是否可以从他们最近停止使用的旧 COBOL 程序中获取数据。我快速浏览了一下,似乎有很多 .IDS 和 .IDX 文件,我认为它们是存储的数据。

我以前没有使用过COBOL,这些标准数据文件吗?

有什么简单的方法可以将它们转换为我可以通过 C# 或任何现代数据库读取的内容吗?

【问题讨论】:

  • 最好的办法可能是找出 COBOL 供应商是谁,并检查他们是否存在任何转换实用程序。
  • 它们将是供应商实现 COBOL 的标准文件,而不是 COBOL 本身的标准文件。因此,我们需要确定地了解供应商。他们可能/可能具有将数据提取到简单文件的实用程序,但是无论如何您都需要 COBOL 记录布局才能轻松理解数据。您的客户有 COBOL 源吗?
  • 我认为他们可能有权访问我需要重建代码的源代码,或者我应该找到什么特别的东西。正如我提到的,我并不真正了解 COBOL。

标签: c# cobol


【解决方案1】:

要找出程序使用的文件:

找到一行写着FILE-CONTROL. 在下面你会发现程序使用的每个文件的SELECT 语句。

SELECT internal-file-name ASSIGN TO external-file-name.

无论是直接还是通过运行程序的脚本,external-file-name 都应该与您感兴趣的文件名相匹配。

接下来,找一行写着FILE SECTION.

您将在下面找到每个文件的FD,它定义了内部文件名,包括数据映射(01 下的所有内容(每个文件可能有多个 01),它定义了文件中记录的结构。

就是这样。哦,你需要了解布局。不过,也许不是,因为您可能能够使用 已经 理解布局的东西。如果您在此处的 COBOL 标记中搜索 JRecord 的实例,应该会得到一些想法来帮助您去某个地方。

这假设有一个实用程序可以将数据提取到平面文件中。

如果您找不到实用程序(首先需要了解编译器的供应商,然后找出可用的工具),那么您将不得不编写一个非常简单的 COBOL 程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2016-02-16
    • 2014-10-26
    • 2011-10-19
    相关资源
    最近更新 更多