打开文件以在COBOL中读取
我正在Windows 10上使用4.7.4(它基于GnuCOBOL),并尝试编译此程序,打开一个文件进行读取:打开文件以在COBOL中读取,cobol,gnucobol,Cobol,Gnucobol,我正在Windows 10上使用4.7.4(它基于GnuCOBOL),并尝试编译此程序,打开一个文件进行读取: IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STUDENT ASSIGN TO 'input.txt' ORGANIZATION
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.
input.txt与源代码位于同一目录中,但我仍然收到以下错误:
Main.cob:24: libcob: File does not exist (STATUS = 35) File : 'input.txt'
我做错了什么?大多数其他语言的IDE碰巧是从另一个目录(例如,它是在那里构建的)运行可执行文件的 一个简单的测试就是编写一个测试程序,打开一个文件进行编写。
您将很快看到发生了什么。OCIDE对输出目录有一个设置,默认为“bin”(相对于源文件)。实际上,它只是将此设置传递给编译器
cobc source.cob-o bin\source.exe
您可以在设置中更改此行为:
输出目录
此选项允许您选择二进制文件的放置位置,默认情况下,二进制文件将放置在源文件旁边的bin文件夹中。如果需要,可以定义另一个相对或绝对目录
在任何情况下,都可以在环境中设置实际名称,请选中
或者,您可以使用环境变量COB\u FILE\u PATH
设置数据目录
这两个环境选项都可以在设置中设置。最好在select子句中写入完整路径
select STUDENT ASSIGN TO '/xpto/folder1/input.txt'
您是对的,这个IDE将可执行文件放在当前用户的bin目录中。也许不是,因为您有一个锁定的程序设置。至少让事情变得相对。