2010-12-02 48 views
1

我在COBOL作業中遇到了一些麻煩。我必須制定一個計劃,寫出人們的姓名和他們的社會安全號碼。基本上我有玩具讓像123456789這樣的數字像123-45-6789一樣出現,像JSDOE這樣的名字就像J S DOE一樣出現。有人可以幫我嗎?如何在COBOL中製作空格和破折號

+0

請允許我歡迎你到堆棧Oveflow並記住三件事,我們通常在這裏做:1 )當你接受幫助時,儘量在專業領域回答問題2)閱讀FAQ! 3)當你看到很好的問題和答案時,請注意他們,因爲系統的可信度取決於用戶通過分享知識獲得的聲譽。還記得接受更好地解決您的問題的答案,如果有的話 – 2010-12-02 06:16:32

回答

5

你應該這樣做。

01 toyNumber pic 9(9). 

01 yourNumber. 
    03 a pic x(3). 
    03 b pic x(2). 
    03 c pic x(4). 

01 outNumber. 
    03 a1  pic x(3). 
    03 filler pic x value "-". 
    03 b1  pic x(2). 
    03 filler pic x value "-". 
    03 c1  pic x(4).  

,並在這個過程:

move 123456789 to toyNumber. 
    .... 
    move toyNumber to yourNumber. 
    move a to a1. 
    move b to b1. 
    move c to c1. 

    display outNumber. 

或者你可以使用「移動相應的」如果你被允許在你的功課。

希望得到這個幫助!

PS:名稱的訣竅是相同的...

1

COBOL !!

我在很長時間後寫這篇文章。所以,謹慎使用。這樣的事情可能工作:

 

01 SSN. 
    03 SSN-FIRST   PIC X(03) VALUE SPACES. 
    03 SSN-FDASH   PIC X  VALUE "-". 
    03 SSN-MIDDLE  PIC X(02) VALUE SPACES. 
    03 SSN-MDASH   PIC X  VALUE "-". 
    03 SSN-LAST   PIC X(04) VALUE SPACES. 

01 NAME. 
    03 FNAME   PIC X(10) VALUE SPACES. 
    03 FDASH   PIC X  VALUE SPACES. 
    03 FMIDDLE  PIC X(10) VALUE SPACES. 
    03 MDASH   PIC X  VALUE SPACES. 
    03 FLAST  PIC X(10) VALUE SPACES. 

 
2

一個更現代的(少古?)做法: -

STRING SSNUMBER(1:3) DELIMITED BY SIZE 
     '-'   DELIMITED BY SIZE 
     SSNUMBER(4:5) DELIMITED BY SIZE 
     '-'   DELIMITED BY SIZE 
     SSNUMBER(6:9) DELIMITED BY SIZE 
INTO PRINTFIELD. 
相關問題