Если вам нужна только одна одиночная запись в самом начале файла, вы, вероятно, можете сгенерировать ее отдельно, а затем просто объединить два файла вместе. (Я предполагаю, что «голые» записи 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. : - (