I went for a slightly different solution, but this is not pretty...

   \ *:
   | x:take 1
   | dup 3 | elastic | s:synch | join 3 / /
   | i:fanin
   | *:
   \ x: | y:take 4 | s: | elastic | z:fanin | join 3 / /  | i:
   \ y: | z:

What I've done is take the first 4 data records (if any) and 'synch'
that with 4 copies of the header. Since 'synch' terminates when either
of them is eof, the result is the right number of headers on the
primary output, and the first row on the second output. Subsequent
rows then follow.

I think I rather live with the extra headers for now, since that code
was most elegant...
Rob

Reply via email to