У меня есть подобная необходимость работать с Compound File, а точнее с файлами типа .md. Это файл описания конфигурации использующий в программах семействах 1С:Предприятия. На сколько я узнал, разработчики 1С использовали данный формат по принципу хранения информации в файлах офиса.
Так что я думаю данный пример поможет немного понять как работать с форматом таких файлов. Честно говоря я еще толком не успел разобраться что и как работает, но все равно привожу пример, а вдруг пригодиться.
А вот и ссылка
Доступ к MD-файлам при помощи VBA
P.S. Да кстати пример как вы поняли из названия использует язык VBA, но при желании его можно перевести и на .NET
P.S. Если Вам удастся что то найти, не поленитесь скинуть ссылочку в данный топик или рассказать обществу о Вашем успехи по изучению работы с Compound File.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Данил, Вы писали:
Д>P.S. Если Вам удастся что то найти, не поленитесь скинуть ссылочку в данный топик или рассказать обществу о Вашем успехи по изучению работы с Compound File.
^^^^^^^^^^^^^^ есть готовая библиотека:
URL
http://download.microsoft.com/download/6/f/0/6f0f2f99-1f99-4594-a9d3-9b2dae203796/DsoFileSetup_KB224351_x86.exe... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Может запоздал ,но все же
У меня возникла необходимость считать необходимые метаданные
из MD файла конфигурации 1С используя C#
Вобщем удалось
Принцип
1.Открыть используя IStorage
2.Считать Main MetaDataStream
3.Разобрать метаданные по полкам
Время -открыть и считать 6 сек(Р4) разложить-0,12 сек
Вариант 2
1.Окрыл
2.Считал
3.Записал в виде текстового файла на диск.
После этого
считал из текстового файла + разложил 1 сек
Размер МД-82 Мб
Единственное что не получилось -прочитать тексты
программных модулей-не могу справиться с кодировкой
Хотя остальные считываются нормально
Но мне это не нужно было -писать свой Конфигуратор не собирался
А вот MetaData очень нужна-получение данных из баз 1С из других
программ по сетке
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
пример работы с istorage на примере chm есть
http://www.codeproject.com/csharp/DecompilingCHM.asp
Там можно скачать исходники и рефлектором посмотреть как описаны интерфейсы. Как я понимают нужно не только IStorage описать, но и функции MS компонентов, которые вернут тебе этот istorage.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
AndreiKar спасибо,
Только хотелось бы узнать если знаешь конечно
ProgrammingText in MD случайно еще чем то не запакован?
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Нет, не знаю. Каждый compound file реализован по разному. Тебе производитель только интерфейс работы с ним отдает с помощью своего компонента. А как там оно реализовано и что ты получишь, обратившись к файлу через этот интерфейс — это уже его дело.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Разобрался запакован как Zip без заголовка
Теперь думаю как распаковать может кто это уже
делал без использования 1С dll-ок
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, YuriPar, Вы писали:
YP>Разобрался запакован как Zip без заголовка
YP>Теперь думаю как распаковать может кто это уже
YP>делал без использования 1С dll-ок
YP>
данное сообщение получено с www.gotdotnet.ru
YP>ссылка на оригинальное сообщение
поищи: compound.dll or ActiveMD.dll
они делают все что тебе надо.