Thanks Raul. I realized I do not understand your S0, how you come up with it. Shouldn't it be just 2 state machine? And if so why the following does not work? test1=: {{)n 1000ddd 2000 ab3000
11111xxx 11 22 }} m0=: a.=LF s0=: +.".>cutLF {{)n 0j0 1j0 NB. when r=0 and c=0 we do nothing, when r=0 and c=1 we do nothing but go to row=1 0j0 0j2 NB. when r=1 and c=0 we do nothing and go to row=0, when next LF (row=1, col=1, we emit word with setting new beginning of new word and go to row=0 }} (0;s0;m0;0 0 0 1) ;:test1 |index error | (0;s0;m0;0 0 0 1) ;:test1 So we start with setting current word hence j=0 and we want final column d=0 to emit word. Do you see the shortcoming in the above snippet? thanks! cheers, Pawel ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm