2017-10-12 75 views
0

是否可以在運行時在COBOL程序中動態指定文件名?是否可以在運行時在COBOL程序中動態指定文件名?

例如,我想不必定義一個文件的名稱,我想在我編寫文件控制部分時打開,我想讀取我想從另一個不同的文件打開的文件的名稱包含名稱的文件,並且我還想在將名稱傳遞給File-COntrol時定義(FD)我想打開的文件。

該平臺是Unix Micro Focus Visual Cobol編譯器。

+0

這是IBM大型機?我們有一個使用BPXWDYN程序進行動態文件分配的解決方案。 – SaggingRufus

+1

請注意平臺。 IBM大型機與其他平臺不同。例如,PC/Unix可以通過SELECT語句的FILE ID子句指定一個WORKING-STORAGE項目。在IBM大型機中,在這種情況下也存在與FD有關的問題。 – zarchasmpgmr

+0

我相信我在之前對FILE-ID的評論中描述的方法在MicroFocus中可用。如果你有權訪問文檔,我建議你看看那裏。 – zarchasmpgmr

回答

0

一個更完整的例子:

INPUT-OUTPUT SECTION. 
    FILE-CONTROL. 
    SELECT IN_FILE ASSIGN TO IN_FILE 
    ORGANIZATION  IS SEQUENTIAL 
    ACCESS MODE  IS SEQUENTIAL 
    FILE STATUS  IS FSTAT. 
FILE SECTION. 
    FD IN_FILE 
    VALUE OF ID IS IN_FILE_NAME. 
    01 IN_POST. 
     03 FIELDA  PIC X(14). 
     03 FIELDB  PIC X(10). 
     03 FIELDC  PIC X(32). 
     03 FIELDD  PIC X(03). 
     03 FIELDE  PIC X(02). 

WORKING-STORAGE SECTION. 
    01 IN_FILE_NAME PIC X(22). 
    01 FSTAT PIC XX. 


PROCEDURE DIVISION. 
    MOVE "FILE1.DAT" to IN_FILE_NAME 
    OPEN INPUT IN_FILE 
    CLOSE IN_FILE 

    MOVE "FILE2.DAT" to IN_FILE_NAME 
    OPEN INPUT IN_FILE 
    CLOSE IN_FILE 

    MOVE "FILE3.DAT" to IN_FILE_NAME 
    OPEN INPUT IN_FILE 
    CLOSE IN_FILE 
STOP RUN. 
+0

您是否必須擁有文件的組織和訪問模式?你有IN_FILE的定義嗎? – Viktoria

+0

增加了一個更完整的例子 –

+0

是否有可能使FD字段更一般,我可以打開同一個文件,例如: FD IN_FILE 01 IN_POST PIC X(80)。 而不是你寫的FD? – Viktoria

相關問題