RE: faster deparse() for string library strtok.e
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Apr 02, 2002
- 482 views
> -----Original Message----- > From: jordah ferguson [mailto:jorfergie03 at yahoo.com] > global function deparse_new(sequence list, integer c) > object t > sequence s > t= time() > if length(list) then > s = list[1] > for i = 2 to length(list) by 1 do > s =s&c > s=s&list[i] > end for > printf(1,"%.32f my version of deparse\n",time()-t) > return s > end if > > return "" > end function What about something like: global function deparse2( sequence list, integer c ) sequence s integer ix, len, slen slen = 256 -- Could be any number, but 256 will probably be enough -- for most [english] sentences without having to expand. s = repeat( c, slen ) ix = 1 for i = 1 to length(list) len = length(list[i]) while slen < ix + len - 1 do -- This could be an 'if' stmt if you're sure -- that slen was big enough relative to your tokens. -- Probably a good assumption if you're dealing with -- english words. s &= repeat( c, slen ) slen *= 2 end while s[ix..ix+len-1] = list[i] ix += len end for return s[1..ix-1] end if Matt Lewis