我有以下代码用于处理索引文件,但是当我运行程序时,我收到运行时错误,“索引文件系统不可用”。我不知道如何编写索引文件和数据文件的代码。我正在进行初始化吗?怎么了?
IDENTIFICATION DIVISION.
PROGRAM-ID. INDEXFILE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT VENDOR-FILE ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS VENDOR-NUMBER.
DATA DIVISION.
FILE SECTION.
FD VENDOR-FILE
LABEL RECORDS ARE STANDARD
VALUE OF FILE-ID IS "input.txt"
DATA RECORD IS VENDOR-RECORD.
01 VENDOR-RECORD.
05 VENDOR-NUMBER PIC 9(5).
05 VENDOR-NAME PIC X(30).
WORKING-STORAGE SECTION.
01 VNAME PIC X.
PROCEDURE DIVISION.
PARA1.
OPEN INPUT VENDOR-FILE.
DISPLAY 'ENTER VENDOR NO: '.
ACCEPT VENDOR-NUMBER.
DISPLAY VENDOR-NUMBER.
READ VENDOR-FILE
INVALID KEY DISPLAY 'NO SUCH RECORD'.
CLOSE VENDOR-FILE.
STOP RUN.
答案 0 :(得分:1)
DOSBOX模拟MS-DOS操作系统,因为它将在较旧的IBM PC兼容计算机上运行。 DOSBOX主要是开发的 支持在具有升级操作系统的新机器上运行老式电脑游戏。 DOSBOX不是 您正在使用的编译器 - 它是操作系统。就这样我们 仍然不知道"味道"你想在这里使用的COBOL。除此之外,您收到的消息是:索引文件系统 不可用,这暗示您缺少一些正在使用的COBOL版本的运行时支持库。
MS-DOS操作系统(或任何其他PC类型的操作系统)不直接支持索引文件系统。除简单顺序之外的文件访问需要 某种类型的运行时支持,我怀疑您在操作环境中缺少这些组件。在没有找到丢失的组件的情况下进一步发展的前景很低。
答案 1 :(得分:0)
我们真正知道的是,您运行的东西允许旧软件像过去那样运行(DOSBOX)。
我们不知道你有哪个编译器。您应该通过查找编译程序时生成的任何文本输出来尝试查找名称,或者尝试将/? /h /help -? -h -help --help
之类的“开关”添加到编译程序时所具有的内容。
您有编译器的任何文档吗?一旦你找到它是哪个编译器,你就可以找到一些你最喜欢的搜索引擎。
要创建第一个索引文件,请编写一个小程序,打开OUTPUT
的索引文件。 WRITE
您想要的记录,然后CLOSE
文件并停止程序。
这通常足以让索引文件继续运行。然后,您应该能够在另一个程序中将该文件用作INPUT
或I-O
。
使用FILE STATUS总是一个好主意。如果您不确定如何使用它,但仍然没有手册,请查看SourceForge上的GNU COBOL文档。