СОНО: Утилита для распаковки архивов СОНО *.tar.bz2
|
|
#1 Сб Июл 25, 2009 18:42:03 Сказали Спасибо❤
|
|
|
База знаний http://balans.kz/viewtopic.php?p=364415#364415
Утилита распаковывает содержимое описателей форм и архивы с данными для СОНО, а именно архивы типа *.tar.bz2
НАСТРОЙКА
tar_bz2_unzip2.cmd - содержит путь к Java машине, по умолчанию стоит СОНО-шный,
т.е. если СОНО установлен в папку
по умолчанию "C:\Program Files\SONO\target\jre\bin\java.exe", то будет работать.
ИСПОЛЬЗОВАНИЕ
tar_bz2_unzip2.cmd принимает 2 параметра
1. путь к рабочей папке, в которой лежат описатели форм
2. имя файла описателя в ней, xml-ки лягут рядом с ними после запуска
Например,
tar_bz2_unzip2.cmd ".\\FNO\\" "form_300_00_v9_r8.tar.bz2"
Структуру каталога лучше не менять, возможны проблемы с путями (не тестировалось).
Для того что бы распаковать новый файл
1. положите его в папку FNO из этого архива
2. для удобства скопируйте и переименуйте файл test_form_101_03_v5_r3.tar.bz2.cmd
3. отредактируйте ваш файл cmd, заменив в нем второй параметр, содержащий имя файла
4. запустите ваш cmd файл двойным щелчком, при успешном завершении xml файлы будут в папке FNO
5. если это не сработало - запустите cmd из командной строки, через команду cd перейдите в папку, куда вы положили файл tar_bz2_unzip2.jar, вызовите из консоли ваш cmd файл, если там будут ошибки - то так вы их увидите.
ПАРА СЛОВ О РЕАЛИЗАЦИИ
Писалось "на коленке", по просьбе товарища.
Выкладывается для ознакомления, возможно, кому то пригодится.
Задача стояла - вытащить данные с этих непонятно как запакованых архивов.
tar_bz2_unzip2.jar - Собственно jar-ка, в которой лежит класс для распаковки.
Внутри используются классы BZip2CompressorInputStream и TarArchiveEntry из либы commons-compress-1.0-SNAPSHOT.jar. Весь код - это где то 100 строчек java кода, пока без проверок и обработки ошибок. Ну и для сведения - двойной архив это: tar - просто компонует файлы в один, bz2 архивирует, но только один файл. В итоге получаем *.tar.bz
ФАЙЛЫ
FNO - папка с тестовыми данным
commons-compress-1.0-SNAPSHOT.jar - либа архиваторов
Readme.txt - описание
tar_bz2_unzip2.cmd - командный файл для удобного запуска, содержит путь к java машине
tar_bz2_unzip2.jar - сама либа для распаковки файлов tar.bz2
test*.cmd - тестовые командные файлы для запуска распаковки форм из папки FNO
p.s. в папке FNO лежат примеры извлеченных xml-ок - описателей форм. Если подсунуть архив 300-ой формы с данным, то он также будет распакован. Целью не ставилось широкое использование, так что за отсутствие GUI и удобств сильно не пинайте
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#3 Сб Июл 25, 2009 20:20:16
|
|
|
Compas говорит: |
А линуксе можно с консоли разархивировать. Верно?
Добавлено спустя 6 минут 33 секунды:
Как то уже приводил ссылку http://ru.wikipedia.org/wiki/Bz2 но не занимался этими архивами. |
Насчет линукса я не знаю, не специалист. Для Win находил портированный с линукса архиватор tar.bz2, но эти файлы он у меня так и не взял. Прежде чем что то писать - скачивал еще несколько архиваторов, в описании заявлявшие, что работают с такими архивами. Ни одним не получилось
Пришлось написать свое, что бы не пропадало - решил поделиться.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#5 Сб Июл 25, 2009 21:25:07
|
|
|
DotNetCoder говорит: |
5. если это не сработало - запустите cmd из командной строки, через команду cd перейдите в папку, куда вы положили файл tar_bz2_unzip2.jar, вызовите из консоли ваш cmd файл, если там будут ошибки - то так вы их увидите. |
tar_bz2_unzip2.cmd имели ввиду
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#6 Сб Июл 25, 2009 21:38:42
|
|
|
Cosmo говорит: |
DotNetCoder
Работаешь в IntelliJ IDEA? Использовал декомпилятор Java? |
Да, idea. Если нужен исходник - пишите в личку, вышлю проект. Ну или подсмотрите через Decompiler.
Если это будет актуально, можно интерфейс добавить взамен консоли, добавить запаковку этих архивов обратно.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
vogobondo
Нерезидент Баланса
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
alkaed
Нерезидент Баланса
|
|
|
|
#11 Ср Июл 29, 2009 11:03:37
|
Сообщить модератору
|
|
Compas говорит: |
А линуксе можно с консоли разархивировать. Верно?
Добавлено спустя 6 минут 33 секунды:
Как то уже приводил ссылку http://ru.wikipedia.org/wiki/Bz2 но не занимался этими архивами. |
Нет, под линухой не распаковывается, к слову сказать виндовозный архиватор WinRAR прекрасно понимает никсовые стандарты архивации tar tgz tar.gz2 tar.bz2 и т.д. Для каких целей разработчики используют такое расширение в своих формах непонятно.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
ТатьянаС
Нерезидент Баланса
|
|
|
|
#15 Ср Июл 29, 2009 14:20:35
|
Сообщить модератору
|
|
DotNetCoder говорит: |
НАСТРОЙКА
tar_bz2_unzip2.cmd - содержит путь к Java машине, по умолчанию стоит СОНО-шный,
т.е. если СОНО установлен в папку
по умолчанию "C:\Program Files\SONO\target\jre\bin\java.exe", то будет работать |
Пожалуйста, скажите, вот я не программист и не совсем понимаю приведенные термины-смогу ли я по указанному пути все сделать сама или лучше обратиться к прграммистам, чтобы всё не испортить?
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
vogobondo
Нерезидент Баланса
|
|
|
|
#17 Ср Июл 29, 2009 20:56:52
|
Сообщить модератору
|
|
alkaed говорит: |
Compas говорит: |
А линуксе можно с консоли разархивировать. Верно?
Добавлено спустя 6 минут 33 секунды:
Как то уже приводил ссылку http://ru.wikipedia.org/wiki/Bz2 но не занимался этими архивами. |
Нет, под линухой не распаковывается, к слову сказать виндовозный архиватор WinRAR прекрасно понимает никсовые стандарты архивации tar tgz tar.gz2 tar.bz2 и т.д. Для каких целей разработчики используют такое расширение в своих формах непонятно. |
Поначалу хотел возмутиться, но решил проверить и точно - не открывается в линухе, bzip ругается и говорит, что это не bzip файл. Чуть ковырнул, проверил формат, оказывается разработчики СОНО все же не отказались от упаковки bzip, просто они выкусили первых два байта, сигнатуру bzip: BZ. Если добавить эти два байта к архивам СОНО все открывается и разжимается под линухом.
Подводя итог можно сказать, что это все же тар-файл упакованный bzip, только файл чуть покорежен.
Сожалею, что дал не достоверную информацию.
Конечно путь - использования родных классов СОНО он более перспективнее - можно будет сделать утилитки по переносу профилей между разными базами, по извлечению сохраненных форм, печать и т.д. Есть куда развиваться Да и не будет подводных камней
|
|
За помощь кликните ′Спасибо′ →
|
|
|
alkaed
Нерезидент Баланса
|
|
|
|
#18 Ср Июл 29, 2009 21:29:08
|
Сообщить модератору
|
|
vogobondo говорит: |
Подводя итог можно сказать, что это все же тар-файл упакованный bzip, только файл чуть покорежен.
|
Защита от дурака надо понимать мне было если честно лень лезть в bin-редактор для выяснения причин.
Добавлено спустя 2 минуты 18 секунд:
Да кстати в консоли необязательно, можно воспользоваться архиватором Ark (в гуях предоставляет фейс к консольным программам архивации)
|
|
За помощь кликните ′Спасибо′ →
|
|
|
vogobondo
Нерезидент Баланса
|
|
|
|
#19 Ср Июл 29, 2009 21:49:12
|
Сообщить модератору
|
|
Elis говорит: |
От кого и что закрывают? |
вопрос риторический, вообще обещали открытые API
Цитата: |
Причем не понятно, почему Ф300 закрывают tar.bz2, а для остальных форм xml-ка открытая. |
пожет вот поэтому:
размер компонент архива 2 МБайта
form_300_00_v10_r14_chr.xml 967
form_300_00_v10_r14_loc.xml 1152083
form_300_00_v10_r14.xml 889592
архив всего 86 КБайт
form_300_00_v10_r14.tar.bz2 86577
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
vogobondo
Нерезидент Баланса
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
alkaed
Нерезидент Баланса
|
|
|
|
#24 Пт Июл 31, 2009 15:47:29
|
Сообщить модератору
|
|
Elis говорит: |
А чем обычный rar не вариант?
Так же сжимает. |
rar в некоторой степени проприетарный формат, в отличии от того же tar и bzip которые используются в открытых системах, собственно как и java на котором написана СОНО.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#26 Чт Авг 06, 2009 10:44:11
|
Сообщить модератору
|
|
Я попробовал с кириллицей, вроде проблем не было.
Вот только в CMD надо писать в кодировке 866.
Надеюсь Вы понимаете что это такое.
Добавлено спустя 5 минут 24 секунды:
Т.е. в кодировке MS DOS.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
АФРИКА
Нерезидент Баланса
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#28 Вт Авг 17, 2010 14:26:21
|
|
|
Taxkz говорит: |
Я попробовал с кириллицей, вроде проблем не было.
Вот только в CMD надо писать в кодировке 866.
Надеюсь Вы понимаете что это такое.
Добавлено спустя 5 минут 24 секунды:
Т.е. в кодировке MS DOS. |
Разумеется понимаю.
Знакомый в Плюс Микро работает, спросил у него про запаковывальщик в тар.бз, ответил дословно так
Код: |
АРХИВ ТРОГАТЬ НИЗЯ И НИКАК ОНИ ЕГО НЕ ЗАПАКОВЫВАЮТ. Открой просто двойным кликом.
запаковщика нет. Есть распаковщик, но тебе его не дадут потому что низя. |
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#32 Ср Авг 18, 2010 13:23:55 Сказали Спасибо❤
|
|
|
Taxkz говорит: |
Что-то сомневаюсь.
Это какой-то супер блокнот, который сам распаковывает файл и откроет ? |
Это скорее всего их внутренняя прога.
Потому что tar.bz2 это бинарный файл, его в любом текстовой редакторе открывать нет смысла.
Если сильно нужно можно распаковать представленной тут прогой, а запаковывается обратно 7zip-ом, потом любым 16 ричным редактором выкусываете 2 первых байта и соно снова его поймет.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#33 Ср Авг 18, 2010 22:34:31
|
|
|
sthprog говорит: |
потом любым 16 ричным редактором выкусываете 2 первых байта и соно снова его поймет. |
Ничего себе как замудренно
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#35 Вс Дек 22, 2013 23:35:43
|
|
|
Дорогие форумчане, пожалуйста если у кого то есть - скиньте эту наработку "tar_bz2_unzip2_v0.1.zip". ООоооочень ннннада. Есть форма 300 с приложением 08 порядка 1000 строк - задача сравнить с данными в 1С сданное приложение. Обещаю при получении приложения в формате xml - выложу обработку по чтению данных из файла xml.
Добавлено спустя 8 минут 54 секунды:
Или если кто то знает как открыть файл .tar.bz2 выгруженный из соно 300 формы (так как в xml СОНО не дает сохранить сданную форму)
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#36 Пн Дек 23, 2013 13:01:34 Сказали Спасибо❤
|
|
|
Вот попробуйте, к батникам оболочку накатал тогда еще, в папку FNO положить этот тар бз, который распаковать, раньше работал, счас проверить возможности нету. ас ис , как говорится.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#37 Пт Апр 20, 2018 18:42:17 Сказали Спасибо❤
|
|
|
Вплоть до 2016 года успешно пользовалась наработкой DotNetCoder и sthprog (предполагаю, что это одно лицо). Огромное спасибо, выручает каждый год, чтобы узнать, что изменили разработчики в новой форме 300.00, которая даже из СОНО сохраняется только в tar.bz2
Но с этого года почему-то перестала работать, пишет "Точка входа в процедуру _JVM_GetTemporaryDirectory@4 не найдена в библиотеке DLL jvm.dll"
Уже и dll`ку меняла на старую, и обработку заново скачивала - ни в какую, в прошлом году она работала, а в этом нет.
Еще раз перечитала всю ветку, и все оказалось гораздо проще:
vogobondo говорит: |
просто они выкусили первых два байта, сигнатуру bzip: BZ. Если добавить эти два байта к архивам СОНО все открывается и разжимается под линухом |
И не только под линусом, но и в винде! Все очень просто.
Ким Семен говорит: |
Или если кто то знает как открыть файл .tar.bz2 выгруженный из соно 300 формы (так как в xml СОНО не дает сохранить сданную форму) |
Запускаете FAR, встаете на файл архива *.tar.bz2 (в том числе и сохраненный отчет из СОНО)
Нажимаете F4 (редактировать), перед всей этой белибердой в самом начале первой строки вбиваете BZ и опа! Архив открывается, причем и в FAR`е, и в RAR`е, и в 7zip`е.
В нем два файла large_data.xml.bz2 и null.xml, вот в файле null.xml и есть распакованный отчет.
Добавлено спустя 51 секунду:
Ким Семен говорит: |
Обещаю при получении приложения в формате xml - выложу обработку по чтению данных из файла xml. |
Давайте, давайте... Пригодится!
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|