I gotta say data is very dirty . filename x 'c:\temp\sampledata.txt'; data want; infile x dlm=' ' expandtabs truncover; input @; length a1-a16 $ 200; retain a1-a16; if prxmatch('/^\s+\d{4}\-\d{4}\-\d{4}\-\d{4}/',_infile_) then do; input (a1-a5) ($) a6 & $ (a8-a14) ($) ; a7=scan(a6,-1,' '); a6=substr(a6,1,findc(strip(a6),' ','b')); end; else if prxmatch('/\d\d\/\d\d\/\d\d/',_infile_) then do; input (a2-a5) ($) a6 & $ (a8-a14) ($) ; if anyalpha(a5) then return; a7=scan(a6,-1,' '); a6=substr(a6,1,findc(strip(a6),' ','b')); end; else if left(_infile_) eq: '*' then a16=_infile_; else if upcase(left(_infile_)) eq: 'PAYMENT' then do; if anydigit(a13)=1 then do;a14=a13;a13=' ';end; a15=_infile_; if not anyalpha(a5) then output; call missing(a16); end; run; Xia Keshan
... View more