如何在COBOL中创建空格和破折号
我的COBOL作业有点麻烦。我必须做一个程序,写下人们的名字和他们的社会保险号码。基本上,我有一个像123456789这样的数字,显示像123-45-6789,还有一个像JSDOE这样的名字,显示像JSDOE。有人能帮我吗?你应该这样做如何在COBOL中创建空格和破折号,cobol,Cobol,我的COBOL作业有点麻烦。我必须做一个程序,写下人们的名字和他们的社会保险号码。基本上,我有一个像123456789这样的数字,显示像123-45-6789,还有一个像JSDOE这样的名字,显示像JSDOE。有人能帮我吗?你应该这样做 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).
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.
如果你的家庭作业允许,你也可以使用“移动对应”
希望这有帮助
注:名字的诀窍是一样的…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.
更现代(不那么古老?)的方法:
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.
请允许我欢迎您使用Stack Oveflow,并记住我们通常在这里做的三件事:1)当您收到帮助时,尝试给予帮助,回答您专业领域的问题2)阅读常见问题!!3) 当您看到好的问题和答案时,请向上投票,因为系统的可信度是基于用户通过分享知识而获得的声誉。如果有的话,也要记住接受能更好地解决问题的答案