есть файл с такой структурой:
4 байта - номер секции
4 байта - размер сеции
много байт - секция размером <размер секции>
таких секци может быть много. я читаю первые 4 байта, запоминаю их, потом следующие 4 байта, определяю размер и читаю <размер> байт.
вот только где их хранить для дальнейшего использования? понимаю что в MemoryStream, но я не знаю сколько будет секций. трудность в том, что секция может содержать вложенные подсекции с таким же форматом.
можно запоминать смещения и размеры и обращаться к исходному файлу (предварительно закешировав его в том же MemoryStream), но нужно производить еще также и редактирование секций, есстественно с пересчетом размеров.
пока что делаю так:
читаю 4 байта - через Stream2Hex помещаю в первый StrList
след. 4 байта - во второй StrList
саму секцию - в третий StrList
ну а потом через массив обращаюсь к нужной секции и тд.
вобщем как использовать динамически MemoryStream? то есть создавать столько, сколько затребуется? данные в него идут от StreamCopy, то есть в нижнюю точку, а как по ней организовать ##Add?
ну и в догонку. в элементе Stream2Hex что содержит точка Position после преобразования?
Ответов: 499
Рейтинг: 1
|
|||
карма: 0 |
|