Существует ли чистый способ добавления записей NOP в файл AFP с использованием Java? - PullRequest
1 голос
/ 09 апреля 2010

Я создал файл AFP, используя встроенную магистраль FOP. Поскольку FOP Trunk не поддерживает тег no-operation непосредственно под root, мне нужно изменить созданный файл, чтобы добавить запись NOP как первую запись в файле. Как это сделать?

Ответы [ 2 ]

2 голосов
/ 18 января 2011

Я бы предложил поднять это как запрос на улучшение с FOP. Скорее всего, это наиболее реалистичное место для достижения этой цели.

Мне не известны никакие библиотеки обработки Java AFP, за исключением библиотеки FOP.

0 голосов
/ 09 декабря 2012

Если вам нужна только одна одиночная запись в самом начале файла, вы, вероятно, можете сгенерировать ее отдельно, а затем просто объединить два файла вместе. (Я предполагаю, что «голые» записи AFP БЕЗ какого-либо «переменного блока» / VB-обертки)

Обратите внимание, что записи AFP имеют такую ​​структуру: 1 байт: x5a (проверочный байт); 2 байта: индикатор длины 16 бит, который включает себя, но не байт «5a»; 3 байта: индикатор типа записи; остальные байты: специфичные для записи данные.

Коды типа записи находятся в этом документе: http://afpcinc.org/site/assets/files/1073/ha3l3r04.pdf

Вот макет для записи NOP (я думаю - это было давно):

x5a + (строка с прямым порядком байтов / сетевым порядком) + xD3 xEE xEE + (EBCDIC) строковые данные

Например, для кодирования строки «FOO = BAR» (hex [46 4f 4f 3d 42 41 52] в ASCII, hex [c6 d6 d6 7e c2 c1 d9] в EBCDIC) в виде NOP:

Длина строки равна 7, поэтому нам нужна общая длина 2 + 3 + 7 = 12 (hex 0c)

Итак, напишите: x5a + [00 0c] + [d3 ee ee] + [c6 d6 d6 7e c2 c1 d9]

Наконец, я знаю, что это неправильный язык, но здесь есть довольно хороший синтаксический анализатор AFP: http://metacpan.org/pod/Parse::AFP,, который предоставляет определения макета рабочей записи, на случай, если я забыл поле в записи NOP. : - (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...