是否可以在運行時在COBOL程序中動態指定文件名?是否可以在運行時在COBOL程序中動態指定文件名?
例如,我想不必定義一個文件的名稱,我想在我編寫文件控制部分時打開,我想讀取我想從另一個不同的文件打開的文件的名稱包含名稱的文件,並且我還想在將名稱傳遞給File-COntrol時定義(FD)我想打開的文件。
該平臺是Unix Micro Focus Visual Cobol編譯器。
是否可以在運行時在COBOL程序中動態指定文件名?是否可以在運行時在COBOL程序中動態指定文件名?
例如,我想不必定義一個文件的名稱,我想在我編寫文件控制部分時打開,我想讀取我想從另一個不同的文件打開的文件的名稱包含名稱的文件,並且我還想在將名稱傳遞給File-COntrol時定義(FD)我想打開的文件。
該平臺是Unix Micro Focus Visual Cobol編譯器。
一個更完整的例子:
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.
這是IBM大型機?我們有一個使用BPXWDYN程序進行動態文件分配的解決方案。 – SaggingRufus
請注意平臺。 IBM大型機與其他平臺不同。例如,PC/Unix可以通過SELECT語句的FILE ID子句指定一個WORKING-STORAGE項目。在IBM大型機中,在這種情況下也存在與FD有關的問題。 – zarchasmpgmr
我相信我在之前對FILE-ID的評論中描述的方法在MicroFocus中可用。如果你有權訪問文檔,我建議你看看那裏。 – zarchasmpgmr