Ru-Board.club
← Вернуться в раздел «Программы»

» FreeArc: бесплатный open-source архиватор - Часть 3

Автор: ruduk
Дата сообщения: 03.02.2010 17:03
Bulat_Ziganshin
Что там с тем глюком, который я обнаружил (о зависании Freearc.exe в памяти)?
Понятно, что действия неправильные, но когда в каталоге куча файлов и ошибочно установить курсор не на свой архив и получить зависший в Диспетчере процесс.

Или это только у меня так? Кто-нибудь еще проверял?
Автор: juvaforza
Дата сообщения: 03.02.2010 18:00
ruduk

Цитата:
но когда в каталоге куча файлов и ошибочно установить курсор не на свой архив и получить зависший в Диспетчере процесс.

Я с вами полностью согласен.

Цитата:
Понятно, что действия неправильные

Неправильное только одно действие - в ваших примерах файл блокирует ошибочное выполнение команды АркИнфо в случае, если до этого была выполнена хотя бы одна корректная операция с любым архивом.

Добавлено:
Можно даже так поступать: noarchive.file->Test, noarchive.file->ArcInfo - и получится тот же эффект.
Автор: AntonAB
Дата сообщения: 03.02.2010 18:17
Bulat_Ziganshin

Есть предложение, чтобы включить в freeArc (в консоль и в GUI) доп. опцию, где можно было бы вводить конкретные файлы или расширения в дополнения к arc.groups с наивысшим приоритетом (без авто определения типа файлов как в -ma9). Пример окна настройки:

окно[доп. к группам]
{$text=} {*.tt;text.dat;book.db;.....(строка ввода)......}
{$bmp=} {*.dds;*.psd;textures.dat;......................}
{$compressed}..........и другие группы

ЗЫ получим, что text.dat будет жать $text, а textures.dat - $bmp
Автор: Bulat_Ziganshin
Дата сообщения: 03.02.2010 23:06
AntonAB
1. это можно сделать и сейчас
2. для gui-пользователей это будет интересно. планы сделать гибкую настройку сжатия через gui есть, но они очень долгосрочные

Добавлено:
AntonAB
http://code.google.com/p/freearc/issues/detail?id=172
Автор: ruduk
Дата сообщения: 04.02.2010 08:37
juvaforza

Цитата:
noarchive.file->Test, noarchive.file->ArcInfo - и получится тот же эффект.

у меня после этих действий также процесс остался в памяти.
Но это уже получается 2 ошибочных действия, что бывает крайне редко. А ошибочно установить не на нужный файл 1 раз - бывает более часто.
Вот тут снова всплывает вопрос о подсвечивании поддерживаемых архивов другим цветом Issue 9, и сразу новый вопрос о типах файлов известных 7z.dll, чтобы их подсвечивать немного другим цветом.
Автор: PAQer
Дата сообщения: 04.02.2010 20:22

Цитата:
зачем? имхо очень специфичная потребность

Вот к примеру, папка с wav (788 файлов - 115,620,362 байт) :
на чистом ТТА получилось 58 204 404 байт, а после обработки РЕПой, полученного архива, уже 52 382 705 байт. 10% как никак. Но ведь архив в архиве это не дело.


Цитата:
интересная мысль. по крайней мере, srep можно таким макаром делать - тогда ему не потребуется обращаться к диску при распаковке. но минус в том что выходной файл будет записываться непоследовательно. но всё равно очень разумно!!!

Не большой минус кстати - вон торрент/осёл так же пишет (хотя мона и настроить его, но зачем, ведь будет блок в конце файла и всё).


Цитата:
то, как я понял твою идею - это некий реверсный LZ. вместо вышеописанного он сразу при исходных данных выдаёт команды - этот участок скопировать в будущее на такое-то место. тогда при распаковке мы прочитав этот участок из входного файла, сразу записываем его в выходной файл на все нужные места. при этом распаковка обходится минимумом памяти. по сути дела память и вовсе не нужна - если повторяемый кусок такой уж большой, никто не мешщает считывать его из исходного файла и зхаписывать во все необходимые места в выходном кусками по 8 мег

В целом, да. А память можно под кэш юзать, если толк конечно будет. Только вот, осуществимо ли это в реале (в рамках фриарка) ?

P.S. название для новой репы - HybridREP.



Цитата:
{$bmp=} {*.dds;*.psd;textures.dat;......................}

фриарк по дефолту $bmp сжимает mm+grzip. DDS - формат сжатый в 99% случаев. Так что для него только lzma подходит.
Автор: ruduk
Дата сообщения: 04.02.2010 20:30
Проверял предыдущие версии FreeArc - данный глюк присутствует во всех версиях 0.61 alpha, 0.60, и в 0.60 RC, и в 0.52 alpha. Только в FreeArc 0.51 (от 28 Апреля 2009) все работает без проблем. Даже после всяких вариантов повесить процесс ничего не получилось.
Возможно именно после добавления в версию 0.52 alpha библиотеки 7z.dll (в составе утилиты All2Arc) глюк и появился (я проверял версию 0.52 за Август 2009 с интегрированным All2Arc v0.52). Только его тогда никто не отлавливал, так как предполагалась работа только в режиме переконвертации чужих архивов в формат FreeArc, и его определили только сейчас.
Проверьте у кого остались предыдущие версии за Июль Июнь Май 2009. Версия 0.51 от 28 Апреля 2009 точно корректно работает.
Автор: AntonAB
Дата сообщения: 05.02.2010 10:33
При инсталляции FreeArc-PowerPack-0.60 Nod32 (вчерашние базы сигнатур) выдал:
tarlzp.exe - вероятно модифицированный Win32/Agent троянская программа

Автор: egor23
Дата сообщения: 05.02.2010 10:41
AntonAB

Цитата:
При инсталляции FreeArc-PowerPack-0.60 Nod32 (вчерашние базы сигнатур) выдал:
tarlzp.exe - вероятно модифицированный Win32/Agent троянская программа

возьмите молоток и забейте гвоздик в гробик...
Автор: Engaged Clown
Дата сообщения: 05.02.2010 10:57
AntonAB
Какой антивирус ? Если аваст
Send the sample to virus (at) avast.com zipped and password protected with the password in email body, a link to this topic might help and false positive in the subject.
Автор: crotoff
Дата сообщения: 05.02.2010 11:36
а что, консольный arc не поддерживает списки для команд t и x ? Попытался распаковать 3 архива через список
arc x @tmp.lst
а он @tmp.lst принимает за архив: FreeArc 0.61 (December 29 2009) extracting archive: @tmp.lst
Нельзя ли добавить поддержку списков для t, x, e в будущие релизы?
Автор: sabio
Дата сообщения: 05.02.2010 13:51
crotoff
а разве в списке указываются не файлы _внутри архива_ которые надо распаковать? (для x)
Автор: crotoff
Дата сообщения: 05.02.2010 15:38
sabio
разве? Тогда как задать ему на вход сразу несколько архивов, чтоб не вызывать каждый раз?
Автор: sabio
Дата сообщения: 05.02.2010 16:52
crotoff

Цитата:
разве?

ну да:

Код:
Usage: Arc command [options...] archive [files... @listfiles...]
Автор: crotoff
Дата сообщения: 05.02.2010 17:03
sabio
а в ТС аналог Ctrl-G есть интересно? Хорошо бы батник на кнопку повесить, чтоб список формировался на лету из выделения или буфера
Автор: sabio
Дата сообщения: 05.02.2010 17:26
crotoff
вообще, для архивов в Far даже специальные пункты меню есть - и там и распаковка, и тестирование - никаких Ctrl+G не надо
Shift+F1 - создать архив из выделенных файлов
Shift+F2 - распаковать выделенные архивы
Shift+F3 - меню всех остальных архивных команд

и в тотале, что-то мне подсказывает, такое тоже имеется
Автор: crotoff
Дата сообщения: 08.02.2010 08:34
Вобщем на досуге пошарился по форуму wincmd.ru и нарыл там интересную фишку TC - каскадное меню для winRARа. С учётом того что контекстное меню FA без прав администратора не устанавливается - придумал по аналогии меню для консольного FA. Преимущество перед MultiArc'ом - операции запускаются в консольных окнах, то есть в фоновом режиме и кроме того можно отследить ход выполнения (консоль MultiArc чё-то мне не понравилась). Можно юзать как дополнение к мультиарк-плагину.

[more]
чтобы замутить себе такую же - открываем блокнотом файлы /Language/Wcmd_rus.ini и Wcmd_rus.mnu и добавляем туда код.

Wcmd_rus.ini:


Код:
[em_FA_middle]
cmd=%COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe
param="a -m=middle -ag_%%Y-%%m-%%d_%%H-%%M-%%S -ma- -i2 -wC:\TEMP --noarcext "%T\archive.arc" %S"
menu=Архивировать выделенное

[em_FA_super]
cmd=%COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe
param="a -m=super -ag_%%Y-%%m-%%d_%%H-%%M-%%S -ma- -i2 -wC:\TEMP --noarcext "%T\archive.arc" %S"
menu=Архивировать выделенное

[em_FA_fast]
cmd=%COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe
param="a -m=fast -ag_%%Y-%%m-%%d_%%H-%%M-%%S -ma- --noarcext -wC:\TEMP -i2 "%T\archive.arc" %S"
menu=Архивировать выделенное

[em_FA_Test_ADD]
cmd=%COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe
param="t -wC:\TEMP %S"
menu=Протестировать архив

[em_FA_list_ADD]
cmd=%COMMANDER_PATH%\list.cmd
param="%O" %%COMMANDER_PATH%%\Plugins\wcx\MultiArc\
menu=Пролистать архив

[em_FA_lists_ADD]
cmd=%Commander_Path%\MultiRun.vbs 0 %COMMANDER_PATH%\list.cmd
param={{%L}} %%COMMANDER_PATH%%\Plugins\wcx\MultiArc\
menu=Пролистать выделенные архивы

[em_FA_extract1_ADD]
cmd=%COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe
param="x -wC:\TEMP "%O.arc""
menu=распаковать

[em_FA_extract2_ADD]
cmd=%COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe
param="x -ad -wC:\TEMP "%O.arc""
menu=распаковать

[em_FA_join_ADD]
cmd=%COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe
param="j -wC:\TEMP "archive_join.arc" %S"
menu=объединить

[em_FA_x1]
cmd=%Commander_Path%\MultiRun.vbs 0 %COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe x
param={{%L}}
menu=извлечь выделенные архивы v1

[em_FA_x2]
cmd=%Commander_Path%\MultiRun.vbs 0 %COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe x -ad
param={{%L}}
menu=извлечь выделенные архивы v2

[em_FA_t]
cmd=%Commander_Path%\MultiRun.vbs 0 %COMMANDER_PATH%\Plugins\wcx\MultiArc\arc.exe t -w%TEMP%
param={{%L}}
menu=тестировать выделенные архивы
Автор: slech
Дата сообщения: 08.02.2010 09:07

Цитата:
напомните битте как задать добавление к имени архива даты-времени, что-то у меня опция -agFMT не работает или я не понял как её приспособить



Цитата:
-ag%Y%m%d


Добавлено:
Автоматическая генерация имени архива - вынес в MiniFAQ.
Автор: crotoff
Дата сообщения: 08.02.2010 09:56
slech
спасибо, оказалось проценты в скрипте нужно дублировать %%
Автор: Bulat_Ziganshin
Дата сообщения: 08.02.2010 10:25

Цитата:
"Упаковать каждый выделенный объект в отдельный архив", но в документации такой опции не нашёл (как -ep у винрара),

-ep - это "erase path" в обоих программах afair. и winrar и freearc поддерживают такую фичу в gui, но не в командной строке

Добавлено:

Цитата:
а что, консольный arc не поддерживает списки для команд t и x ? Попытался распаковать 3 архива через список
arc x @tmp.lst

нет. зато можно сделать arc @lst, а в lst поместить x "arc1.arc" ; x "arc2.arc" .... то же самое можно сделать в ком. строке: arc x "arc1.arc" ; x "arc2.arc" ...
Автор: crotoff
Дата сообщения: 09.02.2010 08:52
Bulat_Ziganshin
а как можно из командной строки запустить GUI или ArcShellExt.dll и передать ей список файлов для упаковки?
Автор: ruduk
Дата сообщения: 09.02.2010 09:26
crotoff

Цитата:
из командной строки запустить GUI

А если попробовать заменить в строках вызова Arc.exe на Freearc.exe? Но тут проблема что для запуска необходимы будут все библиотеки из GTK.
Автор: crotoff
Дата сообщения: 09.02.2010 09:53
ruduk
тогда нужны ключи для последовательной обработки кждого файла в списке (типа -ep в винраре)

Добавлено:
но вообще-то окно, где можно задавать настройки, тыкая мышкой, гораздо удобнее
Автор: Y4MAHA
Дата сообщения: 10.02.2010 16:48
Подскажите, какие команды командной строки способствуют лучшему сжатию?
Время сжатия не волнует, главное результат)
Автор: slech
Дата сообщения: 11.02.2010 01:11
у Winrar можно Gui передать параметры командной строки - всё отработает, но там помоему есть различия некоторые.
Автор: PAQer
Дата сообщения: 13.02.2010 12:01
На форуме NSIS наткнулся на тему по x86 фильтру:
http://sourceforge.net/tracker/?func=detail&aid=2903310&group_id=22049&atid=373088.


Цитата:

I've written a (relatively) small preprocessor/filter for compiled x86 code
that is completely reversible and typically increases compression ratio for
executable files by about 10% compared to the default filter (BCJ) used by
7Zip/LZMA for .EXE files.

Там, собственно, ссылка на исходники.

Цитата:
This package contains "DisFilter", a disassembling binary x86 code
preprocessor that increases compressability by LZ-based compressors
or context coders. It was originally developed for my Win32 executable
compressor kkrunchy.

Было бы круто добавить во фриарк, тем более в планах как раз было дизассемблирование экзешников.
Автор: Bulat_Ziganshin
Дата сообщения: 13.02.2010 14:13

Цитата:
но вообще-то окно, где можно задавать настройки, тыкая мышкой, гораздо удобнее

задаёшь настройки мышкой, запускаешь команду, затем из лог-файла списывашь все параметры


Цитата:
На форуме NSIS наткнулся на тему по x86 фильтру:
http://sourceforge.net/tracker/?func=detail&aid=2903310&group_id=22049&atid=373088.

http://encode.dreamhosters.com/showthread.php?p=11084

действительно круто - сжатие на 10% лучше чем bcj, и на 7% чем bcj2. но как видно по второму тесту, не всегда. я постараюсь его сунуть в свою прогу для удобства экспериментов

Добавлено:

Цитата:
а как можно из командной строки запустить GUI или ArcShellExt.dll и передать ей список файлов для упаковки?

точно так же как и консаольную версию. попробуй скажем freearc a a
Автор: PAQer
Дата сообщения: 13.02.2010 14:38

Цитата:
http://encode.dreamhosters.com/showthread.php?p=11084

действительно круто - сжатие на 10% лучше чем bcj, и на 7% чем bcj2. но как видно по второму тесту, не всегда. я постараюсь его сунуть в свою прогу для удобства экспериментов

А если дельту дополнительно подключить? Лучше/хуже сжатие? Или она здесь уже не в тему...
Автор: Bulat_Ziganshin
Дата сообщения: 13.02.2010 14:44
с дельтой firefox уменьшился до 2,546 кб на dis, до 2,813 кб на bcj, т.е. на 45 кб в обоих случаях. как и должно быть, поскольку табличные данные этот алгоритм не трогает - только код

но вот распознавание свой/чужой, судя по скайпу, у него не иеально. кроме того, на многих файлах он тупо вылетает, думаю что я что-то не так откомпилял

Добавлено:
ссылка для экспериментов: http://freearc.org/download/testing/dispack.exe

Добавлено:

Цитата:
но вот распознавание свой/чужой, судя по скайпу, у него не иеально. кроме того, на многих файлах он тупо вылетает, думаю что я что-то не так откомпилял

разобрался: во-первых, где код он определяет тупо по PE-хидеру. так что эта утилита может обрабатывать только windows exe/dll. во-вторых, у него была глупая ошибка, я её исправил, теперь dispack.exe должен работать на всех exe/dll. хотя skype по-прежнему не в фаворе, вероятно у него куча данных в code-сегменте
Автор: PAQer
Дата сообщения: 13.02.2010 15:52
Sony Vegas 8.0 (9 182 208 байт)
bcj2+lzma: 3 335 134 байт
dispack+lzma: 3 164 867 байт
exe+lzma: 3 399 447 байт

dispack+delta+lzma: 3 145 564 байт
exe+delta+lzma: 3 378 718 байт

XnView (4 173 824 байт)
dispack+delta+lzma: 1 232 457 байт
exe+delta+lzma: 1 359 489 байт

dispack+lzma: 1 236 300 байт
exe+lzma: 1 362 984 байт

Shell32.dll (8 476 160 байт) куча ресурсов внутри
dispack+delta+lzma: 2 206 688 байт
exe+delta+lzma: 2 290 805 байт

FreeArc.exe (4 481 536 байт)
dispack+delta+lzma: 1 053 506 байт - слив.
exe+delta+lzma: 999 528 байт



Цитата:
разобрался: во-первых, где код он определяет тупо по PE-хидеру. так что эта утилита может обрабатывать только windows exe/dll

Пробовал зип ему скормить, не проглотил. С РЕПой значит то же самое будет, хотя репу можно и потом. Главное чтобы солид работал.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Opera (часть 14)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.