*! readtok--break a string variable into a set of token variables *! version 1.0 Sean Becketti January 1996 (STB-29: ip12) program define readtok version 4.0 quietly { local varlist "req ex max(1)" local options "Field(str) Prefix(str)" parse "`*'" if "`prefix'"=="" { local prefix "_v" } confirm string variable `varlist' local type : type `varlist' local i 0 local n 0 while `i' < _N { local i = `i' + 1 local s = `varlist'[`i'] xparse , parse(" `field'") string("`s'") local toks "$S_1" local jn : word count `toks' local j = 0 parse "$S_1", parse(" ") while `j'<`jn' { local j = `j' + 1 local t : word `j' of `toks' if `j'>`n' { gen `type' `prefix'`j' = "" local newvars "`newvars' `prefix'`j'" local n = `j' } replace `prefix'`j' = "`t'" in `i' } } compress `newvars' } end