Не уверен, что вы можете избежать чтения строки нижнего колонтитула, но вы можете устранить строки нижнего колонтитула.Если структура файла согласована, вы можете использовать только преобразование фильтра, чтобы отфильтровать «TRAILER, 1».Если нет, вы можете попробовать этот подход:
SD > SQ > AGG[+ v_cnt Count(COL1)]
[+ o_dummy=1) ] > JN (Join by v_dummy) > FIL (where o_seq < v_cnt) > TGT
> EXP[+ v_seq=v_seq+1 ] >
[+ o_seq = v_seq ]
[+ o_dummy = 1 ]
После того, как квалификатор источника "разделит" поток на преобразования Агрегатор и Выражение.В Aggregator добавьте два порта:
- v_cnt для подсчета всех строк в файле и порт
- o_dummy для хранения жестко заданного значения ("1") для соединения со вторым потоком.
И в преобразованиях Expression добавьте три новых порта:
- v_seq для назначения последовательного номера.
- o_dummy порт для хранения жестко закодированного значения ("1") и
- o_seq выходной порт, который возвращает v_seq.
В Joiner объедините эти два потока с помощью v_dummy = v_dummy и установите порты из агрегатора в качестве Master (для производительности).
Если в нижней части есть пустые строки, после строки нижнего колонтитула можно добавить еще один фильтр (лучше после SQ), чтобы отфильтровать пустые строки ... На самом деле, вы можете удалить столько строк нижнего колонтитула, сколько вам нужно, отфильтровав o_seq < v_cnt -N