2016-05-16 40 views
0

我試圖寫一個COBOL模塊,並具有在該文件中也有些變量:如何在同一個文件中使用LINKAGE SECTION和WORKING-STORAGE SECTION?

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. 

對於輸入參數(MY_VAR)我用LINKAGE SECTION。我不知道如何使用WORKING-STORAGE SECTION聲明來聲明RESULT變量。

我該怎麼做?

+0

是的,有多達四個師,其中,如果使用的話,必須是每個項目唯一的。然後是SECTION。對於那些不是用戶命名的,即PROCEDURE DIVISION標題之前的任何內容,順序非常重要。好的,與程序編譯有關。 –

+0

@BillWoodger True。非常感謝。我寫了一個小小的COBOL模塊來執行[COBOL中的JS/Node.js](https://github.com/IonicaBizau/node.cobol)。 :D –

+0

@IonicăBizăuhttp://www.tutorialspoint.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上看到了這篇文章,並認爲我最近在某處看到了你的名字。 Felicitari din Bucuresti! – bmakos

+0

哦,謝謝! :D別告訴我你是COBOL開發者! Salutăridin Bihor :-) –

0

您是否在PC的大型機上使用Cobol程序?如果在PC上 - 您正在使用哪種Cobol程序? 如果使用鏈接部分,前2個字節指定變量的長度。 另外 - 我沒有看到INPUT變量的定義,除非INPUT是某種Cobol命令(在大型計算機上不能識別)。

正確的語法(在主機上)是:

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'上的任何值都可以在LINKAGE SECTION中找到,如後面所述。對於任何其他LINKAGE SECTION項目都是如此,除非以這種方式記錄。 –