program define spaces, rclass *! 1.0.0 6 June 2000 Jan Brogger syntax , s(string) [chr(string)] if `"`chr'"'==`""' { local chr `";"' } local len=length(`"`s'"')-1 local i=1 if (`len'<2) { return local s=`"`s'"' exit=0 } *Do a dummy run first to get to the ifs local spacpos=1 local pos2=1 local pos3=2 while (`spacpos'>0 & `len'>1) { local spacpos=0 if (`spacpos'==0) { local spacpos=index(`"`s'"',`" "') local pos2=`spacpos'-1 local pos3=`spacpos'+2 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`"| "') local pos2=`spacpos'-1 local pos3=`spacpos'+2 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`"["') local pos2=`spacpos'-1 local pos3=`spacpos'+1 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`"]"') local pos2=`spacpos'-1 local pos3=`spacpos'+1 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`","') local pos2=`spacpos'-1 local pos3=`spacpos'+1 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`"="') local pos2=`spacpos'-1 local pos3=`spacpos'+1 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`" ."') local pos2=`spacpos'-1 local pos3=`spacpos'+1 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`": "') local pos2=`spacpos'-1 local pos3=`spacpos'+1 } if (`spacpos'==0) { local spacpos=index(`"`s'"',`";;"') local pos2=`spacpos'-1 local pos3=`spacpos'+2 } if (`spacpos'>0) { local s1=substr(`"`s'"',1,`pos2') local s2=substr(`"`s'"',`pos3',.) local s `"`s1'`chr'`s2'"' } } return local s=`"`s'"' end