I think I solved something similar along time ago by using parse, getting one word at a time. Right after parse I cut that parsed chunk off, and reparsed until I got it all.
Nothing dynamic about the array to store to though. Small is the opposite of dynamic :-\