COleStreamFile :: Замена OpenStream в C #

У меня есть код, написанный на MFC для чтения и записи файлов. Я переписываю это для C #.

Мой файл состоит из трех частей, заголовок *тело* а также нижний колонтитул. Теперь в коде MFC CArchive может писать / читать любую из этих частей. Это сделано COleStreamFile :: OpenStream. В этом методе мы дали, какую часть читать, и это возвращает поток, указывающий на это местоположение в файле. Затем CArchive использует поток и читает / записывает в файл.

COleStreamFile stream;
//Stream is pointed to footer location.
stream.OpenStream(m_pStg, "Footer", nOpenFlags, pError);  // pStg is LPSTORAGE
CArchive ar(&stream, CArchive::load);

Теперь после этого кода, когда я делаю ar >> или же Арканзас << Я не читал файл с самого начала. Это чтение из середины или конца (зависит от потока). Теперь я хочу преобразовать этот код в C #. Какая замена для COleStreamFile :: OpenStream в C #.

Вот что я сделал до сих пор.

using (var stream = new FileStream(filePath, FileMode.Open))
{
using (var binaryReader = new BinaryReader(stream)
{
}
}

Теперь здесь поток указывает на начало. Я думаю, что я могу дать это для чтения из конкретного байта. Но я не знаю это местоположение байта. Что я знаю заголовок, тело а также нижний колонтитул имена, которые используются кодом MFC.

Или есть какой-нибудь способ узнать текущее местоположение CArchive, когда он читает или пишет. Если я получу оттуда местоположение в байтах, я тоже смогу это использовать.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]