Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups 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: 2422
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 SORTJOIN - Copy Matched and Unmatched... Steve Ironmonger DFSORT/ICETOOL 5 Tue Jan 17, 2017 4:26 pm
No new posts Storing huge volume of data, compare ... Pradeep K M All Other Mainframe Topics 3 Mon Jan 16, 2017 5:08 pm
No new posts how to recover an uncataloged VSAM da... archanamuthukrishnan All Other Mainframe Topics 3 Wed Jan 11, 2017 6:18 pm
No new posts HALDB data refresh/copy from producti... vineetanand2007 IMS DB/DC 0 Mon Jan 02, 2017 11:16 am
No new posts Copy RECFM =VB TO FB file with RECL =... sahil41352 DFSORT/ICETOOL 3 Wed Dec 28, 2016 11:29 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us