2017-10-12 11 views
0

런타임시 COBOL 프로그램에서 동적으로 파일 이름을 지정할 수 있습니까?런타임시 COBOL 프로그램에서 동적으로 파일 이름을 지정할 수 있습니까?

예를 들어 파일 제어 섹션을 작성할 때 열어보고 싶은 파일의 이름을 정의 할 필요가 없습니다. 다른 파일에서 열려고하는 파일의 이름을 읽고 싶습니다. 파일 이름을 포함하고 File-COntrol에 이름을 전달할 때 열려고하는 파일을 (FD)로 정의하고 싶습니다.

플랫폼은 Micro Focus Visual Cobol 컴파일러가있는 Unix입니다.

+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