我负责将 1990 年代一位顾问开发的旧的基于 UNIX 的 COBOL 批处理应用程序转换为 Windows 环境,但仍使用 Microfocus(Eclipse 等)在 COBOL 中。
这是一个非常简单的任务,除了一个小故障。
旧应用程序从未在 COBOL 中进行任何显式文件处理。也就是说,COBOL 程序中没有 FD、OPEN、READ、WRITE 或 CLOSE 命令。相反,他们编写了一个 C 程序,该程序将根据传递给它的参数(包括但不限于文件名、rec 长度和所需的功能)执行这些不同的功能之一。
我想用 COBOL 重写该子例程,这需要对正在转换的 COBOL 主程序进行很少的修改。也就是说,它仍会调用该子例程,但它现在将在 COBOL 中而不是 C 中。
但挑战在于如何编写该子程序,以便它能够对大多数文件进行操作。我认为我必须走可变长度记录的路线,因为它们实际上可以是任何长度,直到要确定的最大大小,但似乎很容易出错(因为它试图打开不同类型的文件) .
有人对此有任何经验或对此类任务有任何想法吗?如果不是,我可能不得不采取直截了当的方式,用需要执行的特定 COBOL 命令(打开、读取等)替换每个调用语句到该子例程,显然每个文件的 FD 和 SELECT 都需要添加到主程序。
提前致谢。