2017-10-12 25 views
0

実行時にCOBOLプログラムでファイル名を動的に指定することはできますか?実行時にCOBOLプログラムで動的にファイル名を指定することはできますか?

たとえば、File-Controlセクションに書き込むときに開くファイルの名前を定義する必要はありません。別の場所から開くファイルの名前を読みたいと思います名前を含むファイルを作成し、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

関連する問題