Просьба о помощи в привязке к 1С

Тема в разделе "WASM.RESEARCH", создана пользователем lamer19, 28 сен 2007.

  1. lamer19

    lamer19 New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2006
    Сообщения:
    24
    Затеялся я сделать открытую GNU-сную кроссплатформеную библиотеку для работы с базами 1С 7.7. для начала на java. В итоге возникла потребность в информации по работе двух библиотек которые привязаны к OS.
    Первый вопрос.
    Нашёл информацию по формату DocFile который в документации майкрософта называется compound
    Там описано что в файле может хранится размер больших блоков и размер маленьких блоков.
    Во всех файлах которые мне доступны эти значения константы, но теоретически возможно столкнутся с файлом в котором эти блоки будут другого размера. Отсюда интерес к тому как работает с этим форматом родные майкрософтовские библиотеки котрые реализуют интерфейс к данному формату файла.
    Вопрос второй.
    Есть информация что 1Совские модули хранятся в этом файле в виде zip-архивов без заголовков на windows платформе все известные мне продукты для распаковки используют родную 1Совскую библиотеку. Информацию то по формату zip-архивов я нашёл, но я не представляю какую часть заголовка откусывает 1С и как она распаковывает и запаковывает эти файлы.

    Может быть кто поможет.
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Странная инфа по ссылке. Начни лучше отсюда. А разве открытых библиотек для разбора OLE Storage нет?
     
  3. lamer19

    lamer19 New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2006
    Сообщения:
    24
    Это я читал. Во первых там не полная информация. Но там есть место которое меня беспокоит и собственно вызывает первый вопрос.
    да по формулировке OLE Storage ссылки на готовые библиотеки есть. Спасибо.
    Скачал на perl буду читать листинг. :)
     
  4. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    lamer19
    Ищи в сети программу stuns.exe (stuns.zip), а там разберёшся :)
    Если файл 1С имеет сжатую часть по одному из алгоритмов Deflate, PKWare, LZO, UCL, то программа его распакует и покажет с какого места она это сделала, сколько байт считала.
     
  5. lamer19

    lamer19 New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2006
    Сообщения:
    24
    Оказалось Deflate только я ещё не понял как интерпретировать вывод программы.
     
  6. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Бери максимальное значение распаковыных байтов, открывай этот файл и смотри что там.
    Т.к. программа перебором пытается распаковывать файлы, то мусор неизбежен, даже если файл точно, сверху донизу запакован одним алгоритмом, то на выходе может быть несколько файлов. Как правило, правильный это тот, который больше всего весит. Но можно и другие файлы посмотреть.
    В твоём случае "12181 bytes at: 0 (0x0)" - это интервал 0x0000h - 0x2F95h(и видно что остальные файлы попадают в этот интервал). Теперь анализируй что там за файл получился.

    Скорее всего заголовок zip вообще тут не причём, его либо просто там нет(либа информация, которая должна в нём содержаться находится далее), а есть сразу Хаффман.
     
  7. lamer19

    lamer19 New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2006
    Сообщения:
    24
    То что по 0 возвращается соответствует тому что я вижу в конфигураторе :)
    Насчёт другого момента я попробую средствами от майкрософта засунуть в данный файл файл размера превышающего то что может в себе нести разумный файл, а именно
    512*(2^16-2) (на самом деле там будет еще меньше)