Hey everyone, Thanks for all your responses. These were very helpful! I used parts from most of these and came up with following: data want; set have; format start_date end_date start mmddyy10.; str_end=length(x); do i=1 to str_end-1; char=substr(x, i, 1); if char ne "0" and substr(x, i+1, 1)="0" then do j=i+1 to min(i, str_end) while(substr(x, j, 1)="0"); substr(x, j, 1)=char; i=j; end; end; start_ndx=1; start_date=start+start_ndx-1; end_ndx = 0; end_date=start+end_ndx-1; x1=substr(x,1,1); do k=2 to str_end; if substr(x,k,1) ^= x1 then do; end_ndx = k-1; end_date=start+end_ndx-1; output; start_ndx = k; start_date=start+start_ndx-1; x1 = substr(x,k,1); end; end; end_ndx = length(x); end_date=start+end_ndx-1; output; drop i j k char; run; proc print data=want;var x x1 start start_ndx end_ndx start_date end_date;run
... View more