Каждый следующий патч должен начинаться с индикатора, сигнализирующего о начале группы блоков и заканчиваться индикатором конца блоков. Или же взять вместо этого поле с количеством блоков в Label, необходимых для считывания очередного патча.Не понял насчёт псевдокода. Такая конструкция ведь некомпилируема?! Или имеется в виду записать в поток сначала размер данных описания, а потом сами данные?В блоке должна храниться информация о разнице между исходным и конечным документами. Но так как в RECORD я не могу поместить динамические данные, то остались только тип операции и размер блока. Причём, данные блока представляют из себя последовательность байтов, т.к. контейнер не дожен знать что за структура внутри. А вот как её интерпретировать потом - отдельным классом-моделью, полагаю. Внутри структура будет представлять из себя набор символов со всякими вьюшками и прочими элементами.
Меня такие вопросы наводят на мысль, что я мыслю по-прежнему, по-борландовски. Поправь, если  я не прав.см. выше.