On 03/17/2011 05:09 PM, Mike Walter wrote: > Everything I've tried has failed due to LOOKUP's delay.
It must have been somebody else's delay. LOOKUP strictly doesn't delay the output on streams 0 and 1. To break the records up into segments and put them back together without any record delay, you'll have to mark the end of the record rather than the start with a unique string. I'll guess from your sample that you can use "::" for that, and that you don't need to preserve the exact number of blanks between segments: (end ?) ... | insert ":" after | head: chop before string " :FIXEDP " | all: faninany | deblock string "::" | ... ? head: | tail: chop before string "::" | split before string " :FIXEDP " | match: lookup w3 w1 | specs 1-* 1 read w3 nw | specs w1-3 1 w-1 nw w4;-2 nw | all: ? ... | locate w1 | match: | specs 1-* 1 "n/a" nw | specs w1-3 1 w-1 nw w4;-2 nw | all: ? tail: | all: (The second SPECS is needed because you don't know where to put the extra stuff until after reading the master record. You'll have to get even pickier with it if you're worried about preserving runs of blanks.) ¬R
