Затеялся я сделать открытую GNU-сную кроссплатформеную библиотеку для работы с базами 1С 7.7. для начала на java. В итоге возникла потребность в информации по работе двух библиотек которые привязаны к OS. Первый вопрос. Нашёл информацию по формату DocFile который в документации майкрософта называется compound Там описано что в файле может хранится размер больших блоков и размер маленьких блоков. Во всех файлах которые мне доступны эти значения константы, но теоретически возможно столкнутся с файлом в котором эти блоки будут другого размера. Отсюда интерес к тому как работает с этим форматом родные майкрософтовские библиотеки котрые реализуют интерфейс к данному формату файла. Вопрос второй. Есть информация что 1Совские модули хранятся в этом файле в виде zip-архивов без заголовков на windows платформе все известные мне продукты для распаковки используют родную 1Совскую библиотеку. Информацию то по формату zip-архивов я нашёл, но я не представляю какую часть заголовка откусывает 1С и как она распаковывает и запаковывает эти файлы. Может быть кто поможет.
Это я читал. Во первых там не полная информация. Но там есть место которое меня беспокоит и собственно вызывает первый вопрос. да по формулировке OLE Storage ссылки на готовые библиотеки есть. Спасибо. Скачал на perl буду читать листинг.
lamer19 Ищи в сети программу stuns.exe (stuns.zip), а там разберёшся Если файл 1С имеет сжатую часть по одному из алгоритмов Deflate, PKWare, LZO, UCL, то программа его распакует и покажет с какого места она это сделала, сколько байт считала.
Бери максимальное значение распаковыных байтов, открывай этот файл и смотри что там. Т.к. программа перебором пытается распаковывать файлы, то мусор неизбежен, даже если файл точно, сверху донизу запакован одним алгоритмом, то на выходе может быть несколько файлов. Как правило, правильный это тот, который больше всего весит. Но можно и другие файлы посмотреть. В твоём случае "12181 bytes at: 0 (0x0)" - это интервал 0x0000h - 0x2F95h(и видно что остальные файлы попадают в этот интервал). Теперь анализируй что там за файл получился. Скорее всего заголовок zip вообще тут не причём, его либо просто там нет(либа информация, которая должна в нём содержаться находится далее), а есть сразу Хаффман.
То что по 0 возвращается соответствует тому что я вижу в конфигураторе Насчёт другого момента я попробую средствами от майкрософта засунуть в данный файл файл размера превышающего то что может в себе нести разумный файл, а именно 512*(2^16-2) (на самом деле там будет еще меньше)