2016-05-16 16 views
0

私もCOBOLモジュールを記述しようとしていると、このファイル内のいくつかの変数を持っている:入力引数(MY_VAR)についてはリンケージセクションと作業用セクションを同じファイルで使用するには?

IDENTIFICATION DIVISION. 
    PROGRAM-ID. UTIL. 

    DATA DIVISION. 
    LINKAGE SECTION. 
    01 MY_VAR PIC X(100). 

    DATA DIVISION. 
    WORKING-STORAGE SECTION. 
    01 RESULT PIC X(200) value SPACES. 

    PROCEDURE DIVISION USING MY_VAR. 
     STRING INPUT DELIMITED BY SPACE 
       ' ' DELIMITED BY SIZE 
       MY_VAR BY SPACE 
     INTO RESULT 
     DISPLAY RESULT 
    EXIT PROGRAM. 

を私はLINKAGE SECTIONを使用しています。 RESULT変数を宣言するには、WORKING-STORAGE SECTIONステートメントを使用する方法がわかりません。

どうすればいいですか?

+0

はい、使用している場合、プログラムごとに一意である必要があり、最大4つの部門があります。次にセクションがあります。ユーザー名でないもの、つまりPROCEDURE DIVISIONヘッダーの前にあるものは、その順序が重要です。 OK、プログラムのコンパイルに関連しています。 –

+0

@BillWoodger真。どうもありがとう。私は[COBOLのJS/Node.js](https://github.com/IonicaBizau/node.cobol)を実行するための小さなCOBOLモジュールを作成しました。 :D –

+0

@IonicăBizăuhttp://www.tutorialspot.com/cobol/cobol_program_structure.htm部門内のいくつかのセクションの情報があります – Thraydor

答えて

4

データ部が1つ必要です。また、注文はセクションには適していないと思う。 コードを作成する前に、Cobolのドキュメントを参照することをお勧めします。

 IDENTIFICATION DIVISION. 
    PROGRAM-ID. UTIL. 

    DATA DIVISION. 

    WORKING-STORAGE SECTION. 
    01 RESULT PIC X(200) value SPACES. 

    LINKAGE SECTION. 
    01 MY_VAR PIC X(100). 



    PROCEDURE DIVISION USING MY_VAR. 
     STRING INPUT DELIMITED BY SPACE 
       ' ' DELIMITED BY SIZE 
       MY_VAR BY SPACE 
     INTO RESULT 
     DISPLAY RESULT 
    EXIT PROGRAM. 
+0

私は同様のことを試しましたが、順序が重要であるかどうかはわかりませんでした。 :-) –

+0

私はArs Technicaに関する記事を見て、最近あなたの名前をどこかで見たことを再確認しました。 Bucurestiにお任せください! – bmakos

+0

ああ、ありがとう! :DあなたがCOBOLの開発者だと教えてください! Salutăridin Bihor :-) –

0

PCのメインフレームでCobolプログラムを使用していますか? PC上の場合 - どのCobolプログラムを使用していますか? リンケージセクションを使用している場合、最初の2バイトは変数の長さを指定します。 また、INPUTが何らかの種類のCobolコマンド(メインフレームコンピュータでは認識されない)でない限り、INPUT変数の定義は表示されません。

(メインフレーム上の)正しい構文は次のとおりです。

LINKAGE SECTION. 
    01 link-parms. 
     05 LNK-PARM-LENGTH   PIC S9999 COMP. 
     05 MY_VAR PIC X(100). 

    PROCEDURE DIVISION USING MY_VAR. 
     STRING INPUT DELIMITED BY SPACE 
       ' ' DELIMITED BY SIZE 
       MY_VAR BY SPACE 
     INTO RESULT 
     DISPLAY RESULT 
     STOP RUN. 
+1

あなたは 'INPUT'について正しいです、フィールドの長さについては間違っています。これは(メインフレーム上で)z/OSが 'EXEC PGM = ...'で起動したプログラムに対してのみ当てはまります。ここでは、 'PARM'の値はリンクセクションで使用可能です。そうでない限り、他のリンクセクションの項目には当てはまりません。 –

関連する問題