Как вы делаете пробелы и черточки в COBOL - PullRequest
2 голосов
/ 02 декабря 2010

У меня проблемы с домашним заданием на Коболе. Я должен сделать программу, которая записывает имена людей и их номера социального страхования. В основном у меня есть игрушка, чтобы число вроде 123456789 показывалось как 123-45-6789, а имя как JSDOE появлялось как J S DOE. Кто-нибудь может мне помочь?

Ответы [ 3 ]

6 голосов
/ 02 декабря 2010

Вы должны сделать что-то вроде.

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: Трюк с именем такой же ...

2 голосов
/ 02 декабря 2010

Более современный (менее древний?) Подход: -

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.
2 голосов
/ 02 декабря 2010

КОБОЛ !!

Пишу это через долгое время.Итак, соблюдайте осторожность.Примерно так может работать:


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.


...