2010-12-02 6 views
1

J'ai un peu de mal avec mes devoirs COBOL. Je dois faire un programme qui écrit les noms des personnes et leurs numéros de sécurité sociale. Fondamentalement j'ai jouet faire un numéro comme 123456789 apparaître comme 123-45-6789 et un nom comme JSDOE se présente comme J S DOE. Est-ce que quelqu'un peut m'aider?Comment faire des espaces et des tirets en COBOL

+0

Permettez-moi de vous souhaiter la bienvenue à Stack Oveflow et souvenez-vous seulement trois choses que nous faisons habituellement ici: 1 Au fur et à mesure que vous recevez de l'aide, essayez de le donner aussi en répondant aux questions de votre domaine d'expertise. 2) lisez la FAQ !! 3) Lorsque vous voyez de bonnes questions et de bonnes réponses, augmentez-les car la crédibilité du système repose sur la réputation que les utilisateurs ont acquise en partageant leurs connaissances. Rappelez-vous également d'accepter la réponse qui résout le mieux votre problème, le cas échéant –

Répondre

5

Vous devriez faire quelque chose comme.

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).  

et dans la procédure:

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

    display outNumber. 

Ou vous pouvez utiliser « déplacer correspondante » si vous êtes autorisé à vos devoirs.

Espérons que cette aide!

PS: L'astuce pour le nom est le même ...

1

COBOL !!

J'écris ceci après une longue période. Alors, soyez prudent. Quelque chose comme cela peut fonctionner:

 

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

Un plus moderne (moins ancienne?) Approche: -

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. 
Questions connexes