Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
SAS - splitting up of data using a comma delimited file.

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> All Other Mainframe Topics
View previous topic :: :: View next topic  
Author Message
sushanth bobby

Senior Member


Joined: 29 Jul 2008
Posts: 1013
Location: India

PostPosted: Sat Jun 19, 2010 7:23 am    Post subject: SAS - splitting up of data using a comma delimited file.
Reply with quote

Hi,

I have a comma delimited input file in the following format,
Code:
OP2,NORMALSTRAP: OP2MODLM,4,15,4,15,0,0,0,0,0,0,0,0       
OP2,NORMALSTRAP: OP2PRODP,4,14,4,14,0,0,0,0,0,0,0,0       
OP2,NORMALSTRAP: OP2WAREP,4,14,4,14,0,0,0,0,0,0,0,0       
OP2,PICT COPY: ABDDEV AGSDTEST,16,14,0,0,0,0,16,14,0,0,0,0
OP2,PICT COPY: ABDDEV APPDATAP,19,66,0,0,0,0,19,66,0,0,0,0

Using the below SAS code, i am extracting only the data i need,
Code:
//SASSTEP EXEC  SAS                                     
//IFILE   DD DISP=SHR,DSN=HXSULL.TEST(SMR)             
//OUTFILE DD DSN=HXSULL.BOBT1.MFSTORE.UL,               
//         DISP=(NEW,CATLG,DELETE),                     
//         UNIT=TEST,                                   
//         SPACE=(CYL,(10,5),RLSE),                     
//         DCB=(RECFM=FB,LRECL=70,BLKSIZE=0)           
//SYSIN  DD *                                           
OPTIONS NOCENTER;                                       
DATA INFILE;                                           
INFILE IFILE DLM=',' ;                                 
 INPUT A $ B :$30. C  D ;                               
PROC PRINT DATA=INFILE;                                 
 TITLE2 'DATA FILE';                                   
                                                       
 DATA OFILE;                                           
    SET INFILE;                                         
    FILE OUTFILE;                                       
PUT @1  A                                               
    @5  B                                               
    @40 C                                               
    @50 D   
    ;       


Output of the above SAS code,
Code:

The SAS System                                             
DATA FILE                                                 
                                                           
Obs     A                 B                  C     D       
                                                           
 1     OP2    NORMALSTRAP: OP2MODLM          4    15       
 2     OP2    NORMALSTRAP: OP2PRODP          4    14       
 3     OP2    NORMALSTRAP: OP2WAREP          4    14       
 4     OP2    PICT COPY: ABDDEV AGSDTEST    16    14       
 5     OP2    PICT COPY: ABDDEV APPDATAP    19    66       

Now, i want to split up column B into more columns like the following, help me i don't know how to proceed.
Code:
OBS     A          B         C             D          E     F
 1     OP2    NORMALSTRAP    OP2MODLM                 4    15
 2     OP2    NORMALSTRAP    OP2PRODP                 4    14
 3     OP2    NORMALSTRAP    OP2WAREP                 4    14
 4     OP2    PICT COPY      ABDDEV     AGSDTEST     16    14
 5     OP2    PICT COPY      ABDDEV     APPDATAP     19    66
 


Thank You in advance,
Sushanth
Back to top
View user's profile Send private message

PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2446
Location: Netherlands, Amstelveen

PostPosted: Sat Jun 19, 2010 11:22 am    Post subject:
Reply with quote

Code:
INFILE IFILE DLM=',:' ;
Back to top
View user's profile Send private message
sushanth bobby

Senior Member


Joined: 29 Jul 2008
Posts: 1013
Location: India

PostPosted: Sat Jun 19, 2010 8:38 pm    Post subject:
Reply with quote

Thank You Very Much Peter for that,

Using the SAS SCAN function, i got what i wanted.

Code:
OPTIONS NOCENTER;                             
DATA INFILE;                                   
INFILE IFILE DLM=',:' ;                       
 INPUT A $ B :$30. C :$30. D E ;               
 FW=SCAN(C, 1,' '); **FIRST WORD IN A STRING; 
 SW=SCAN(C, 2,' '); **LAST WORD IN A STRING;   
                                               
PROC PRINT DATA=INFILE;                       
 TITLE2 'DATA FILE';                           
                                               
 DATA OFILE;                                   
    SET INFILE;                               
    FILE OUTFILE;                             
PUT @1  A                                     
    @5  B                                     
    @40 C                                     
    @50 D                                     
    ;                                         


Output
Code:
The SAS System                                                                 
DATA FILE                                                                       
                                                                               
Obs     A          B         C                   D     E       FW          SW   
                                                                               
 1     OP2    NORMALSTRAP    OP2MODLM            4    15    OP2MODLM           
 2     OP2    NORMALSTRAP    OP2PRODP            4    14    OP2PRODP           
 3     OP2    NORMALSTRAP    OP2WAREP            4    14    OP2WAREP           
 4     OP2    PICT COPY      ABDDEV AGSDTEST    16    14    ABDDEV      AGSDTEST
 5     OP2    PICT COPY      ABDDEV APPDATAP    19    66    ABDDEV      APPDATAP


Thank You,
Sushanth
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> All Other Mainframe Topics All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Data security erase on RAID device steve-myers All Other Mainframe Topics 0 Sat Jan 13, 2018 6:41 am
No new posts COB2 file processing rizwanaccy COBOL Programming 8 Tue Jan 02, 2018 1:00 pm
No new posts KSDS and Index file in cobol deepak14450 COBOL Programming 9 Fri Dec 22, 2017 9:36 am
No new posts Append the milliseconds to the data s... girishb2 DFSORT/ICETOOL 1 Thu Dec 21, 2017 9:07 pm
No new posts Preserve order in Input File pshongal DFSORT/ICETOOL 13 Thu Dec 21, 2017 4:20 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us