Я строю свой собственный парсер MT940, и я сталкиваюсь с чем-то, что кажется неуточненной проблемой.как следует интерпретировать спецификации MT940
Спецификация тега: 61: указывает, что он заканчивается переменным количеством символов (34x). Из файла примера я вижу, что они могут продолжаться на следующей строке.
Например:
:61:1510151015C54,01NTRFNONREF//15288910043499
/TRCD/00100/
Как определить, если следующая строка представляет собой новый тег, или если он является продолжением содержания предыдущей метки. Кажется, что поиск шаблона: xx: в начале строки наивнее, поскольку это может вызвать ошибку в исключительной ситуации, когда контент действительно содержит этот конкретный шаблон.
Вы говорите, что код, который передает сообщение, должен подтвердить, что продолжение не начинается с этой «магической» последовательности символов? Другими словами: код видит, что продолжение содержит «: 61:», и оно будет помещено в начало строки, поэтому оно поместит разрыв строки в другое место в строке? – coen
Действительно. Если строка не начинается с: nn: то это продолжение. Вы можете просто разобрать его сверху вниз и проверить каждую следующую строку. – Jaco
, что сделало бы это действительно ужасным протоколом (определяющим положение новых строк в строке на основе содержимого этой строки), но, глядя на всю информацию, которую я прочитал, возможно, вы правы. – coen