我在Windows 10上使用OpenCobolIDE 4.7.4(它基于GnuCOBOL)并尝试编译该程序打开一个文件进行阅读:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STUDENT ASSIGN TO 'input.txt'
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD STUDENT.
01 STUDENT-FILE.
05 STUDENT-ID PIC 9(5).
05 NAME PIC A(25).
WORKING-STORAGE SECTION.
01 WS-STUDENT.
05 WS-STUDENT-ID PIC 9(5).
05 WS-NAME PIC A(25).
01 WS-EOF PIC A(1).
PROCEDURE DIVISION.
OPEN INPUT STUDENT.
PERFORM UNTIL WS-EOF='Y'
READ STUDENT INTO WS-STUDENT
AT END MOVE 'Y' TO WS-EOF
NOT AT END DISPLAY WS-STUDENT
END-READ
END-PERFORM.
CLOSE STUDENT.
STOP RUN.
Run Code Online (Sandbox Code Playgroud)
该input.txt中是在同一目录作为源折轴,但我还是发现了以下错误:
Main.cob:24: libcob: File does not exist (STATUS = 35) File : 'input.txt'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
OCIDE有一个输出目录的设置,默认为"bin"(相对于源文件).实际上它只是将此设置传递给编译器cobc source.cob -o bin\source.exe
您可以在设置菜单首选项 - >编译器中更改此行为:
输出目录
此选项允许您选择放置二进制文件的位置,默认情况下,二进制文件将放置在源文件旁边的bin文件夹中.如果需要,可以定义另一个相对或绝对目录.
在任何情况下,您都可以在环境中设置实际名称,请查看GC常见问题 - 如何将文件名映射到外部名称.
作为替代方法,您可以使用环境var设置数据目录COB_FILE_PATH.
可以在菜单首选项 - >运行设置中设置两个环境选项.