你如何在COBOL中创造空格和破折号

时间:2010-12-02 00:56:45

标签: cobol

我的COBOL作业遇到了一些麻烦。我必须制作一个程序,写出人的名字和他们的社会安全号码。基本上我有玩具制作像123456789这样的数字显示像123-45-6789和JSDOE这样的名字就像J S DOE一样出现。有人可以帮助我吗?

3 个答案:

答案 0 :(得分:6)

你应该做类似的事情。

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 :(得分:2)

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 :(得分: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.