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