2016-07-27 3 views
2

in COBOL Lesen Ich verwende OpenCobolIDE 4.7.4 unter Windows 10 (es auf Gnucobol basiert) und versucht, dieses Programm zu kompilieren eine Datei zum Lesen öffnen:Öffnungs Datei für

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. 

Die input.txt ist im selben Verzeichnis wie die Quelle coude, aber ich bin immer noch die folgende Fehlermeldung erhalten:

Main.cob:24: libcob: File does not exist (STATUS = 35) File : 'input.txt' 

Was mache ich falsch?

Antwort

4

Die meisten IDE für andere Sprachen passieren die ausführbare Datei von einem anderen Verzeichnis (wo es zum Beispiel gebaut wird).

Ein einfacher Test besteht darin, ein Testprogramm zu schreiben und eine Datei zum Schreiben zu öffnen. Sie werden schnell sehen, was passiert.

+0

Sie hatten Recht, diese IDE legt ausführbare Dateien im bin-Verzeichnis des aktuellen Benutzers. – Quentin

5

OCIDE hat eine Einstellung für das Ausgabeverzeichnis, der Standardwert ist "bin" (relativ zur Quelldatei). Effektiv es geht nur um diese Einstellung zu den Compiler cobc source.cob -o bin\source.exe

Sie können dieses Verhalten in den Einstellungen ändern Menu Preferences -> Compiler:

Output directory

This option let you chose where to put the binaries, by default binaries will be placed into a bin folder next to the source file. You can define another relative or absolute directory if you want.

In jedem Fall, dass Sie den tatsächlichen Namen in der Umgebung einstellen können, überprüfen GC FAQ - How to map a file name to an external name.

Alternativ können Sie das Datenverzeichnis mit der Umgebung var COB_FILE_PATH einstellen.

Beide Umgebungsoptionen können in den Einstellungen Menu Preferences -> Run festgelegt werden.

0

Vielleicht ist es besser, den vollständigen Pfad in der SELECT-Klausel zu schreiben.

select STUDENT ASSIGN TO '/xpto/folder1/input.txt' 
+0

Vielleicht nicht, denn dann haben Sie eine gesperrte Einstellung für das Programm. Mach wenigstens Dinge relativ. –