Вы должны быть в состоянии выполнить то, что вы хотите, используя свойства Delimiter схемы плоского файла.
На основе вашего файла примера я создал схему со следующей структурой записи:
<Schema>
<Root>
<HDRGroup>
<HDR>
<LIN>
Если вы щелкнете по корневому узлу вашей схемы, вы увидите список свойств этого корневого узла. Один раздел свойств имеет заголовок «Плоский файл». В этом разделе плоского файла первые три свойства, которые вы можете установить, это разделитель дочерних элементов, тип разделителя дочерних элементов и порядок дочерних элементов.
Здесь вы конфигурируете схему для создания пустых строк (в данном случае CR LF, но вы можете устанавливать разные вещи по мере необходимости). Для вашего примера я установил следующее:
Child Delimiter: 0x0D 0x0A 0x0D 0x0A
Child Delimiter Type: Hexadecimal
Child Order: Infix
0x0D 0x0A - это перевод строки каретки, поэтому вышеприведенное просто создает две пустые строки, вставленные между каждым дочерним элементом корневого узла.
Затем функционирует, чтобы убедиться, что каждый заголовок и его строки хранятся вместе. Для его настроек разделителя я установил:
Child Delimiter: 0x0D 0x0A
Child Delimiter Type: Hexadecimal
Child Order: Postfix
Записи и содержат фактическое определение схемы для строк сообщения, разделенных звездочкой.
Эта схема работает для чего-то похожего на то, что вы просили - такого рода схема плоского файла и то, как она анализирует файл, сильно зависит от мелких деталей, таких как тип разрывов строк и если в конце файла есть разрывы строк.
Принципы использования разделителей останутся в силе, вам, скорее всего, придется повозиться с настройками.