Page 8 of 19
Posted: Tue Jul 24, 2007 6:37 pm
by Mike
а теперь ждите, пока я допишу очередную версию kfar'а (не собираюсь выкладывать версию, читающую файлы в 7z по F3, но не поддерживающую F5...).
diamond, почему по ф3!?? по ентер, только по ентер! архив=папка!

сори за
такую хотелку

зы: а 7зип рулез

Posted: Thu Jul 26, 2007 12:43 pm
by diamond
Версия 0.4. Поддержка плагинов, пока что довольно слабая.
http://diamondz.land.ru/kfar
http://diamondz.land.ru/kfar_src.7z (исходники, включают описание API для плагинов)
http://diamondz.land.ru/kfar.ini
Список загружаемых плагинов берётся из ini-файла, там есть комментарии.
"архив=папка" подразумевалось по умолчанию. Имелась в виду работа клавиш на плагинной панели. Работают встроенный просмотрщик (F3) и операция копирования (F5) из плагинной панели. Про FAR'овскую команду Shift+F2 я знаю, а kfar ещё нет.
В меню выбора дисков начиная с ядра svn.588 для CD работают клавиши Ins и Del наподобие FAR'овского поведения - Ins загружает диск, Del, соответственно, наоборот.
По заявкам телезрителей (для справки: греческая приставка "теле" означает "далеко") в ini-файле появились параметры LeftViewMode и RightViewMode, определяющие стартовый режим - от 1 до 4.
Плагин KFar_Arc умеет заходить и работать с архивами 7-Zip.
http://diamondz.land.ru/kfar_arc.obj
http://diamondz.land.ru/kfar_arc_src.7z
Вышеупомянутый ini-файл рассчитывает на то, что kfar_arc.obj располагается в той же папке, что и kfar, но при желании можно указать другое размещение плагина.
Методы сжатия BZip2 и Deflate пока не поддерживаются, но в *.7z они бесполезны, поскольку LZMA и PPMD (поддерживаемые в полной мере) сжимают лучше. Если архив защищён паролем, плагин запросит пароль у пользователя (либо при входе в архив, если заголовок зашифрован, либо при обращении к зашифрованным файлам в противном случае).
Между прочим, формат 7z допускает всяческие извращения. Например,
http://diamondz.land.ru/call$.7z - архив, содержащий сам себя. Или даже
http://diamondz.land.ru/call$.2.7z - архив, содержащий сам себя и ещё несколько файлов. А вот
http://diamondz.land.ru/jmp$.7z : при попытке его открыть 7-zip'овский код намертво завешивается (причём неважно, чем открывают архив: 7z/WinRAR/плагин к FAR/TC), правда, kfar_arc так просто не завесить.
Posted: Thu Jul 26, 2007 4:18 pm
by Serial
diamond
Безусловно тоже снимаю шляпу.
Очень хотелось бы узнать о процессе разработки плагина KFar_Arc. Он писался с нуля? или использовались открытые исходники 7-zip? Я их изучал, если так можно сказать.. Мне показались они очень сложными. Видно, что при разработке плагина был проделан колоссальный труд.
Posted: Sat Jul 28, 2007 12:13 pm
by diamond
Serial
Ну не такие уж исходники 7-Zip и сложные, особенно, если знать, что и в каком файле искать... Кстати, если кто-нибудь собирается изучать формат 7z, настоятельно рекомендую именно первоисточник (особенно если учесть, что туда входит описание формата как таковое).
Загрузка 7-Zip архивов в основном повторяет действия из 7zip\Archive\7z\7zIn.cpp, общая процедура распаковки писалась с нуля независимо от 7-zip'овской, декодеры PPMD,BCJ,BCJ2 просто переписаны с соответствующего C++-кода из исходников 7-Zip на fasm с учётом специфики моей распаковки, декодер LZMA - немного модифицированный unpacker.inc, который в Колибри используется в куче мест, начиная от ядра и KlbrInWin и заканчивая desktop'ом и который в свою очередь представляет собой оптимизированный первоначальный вариант, портированный уже не из 7-Zip, а из LZMA SDK, где находится Сишный (не C++) вариант. AES и SHA256 писал с нуля, используя спецификации алгоритмов.
Posted: Mon Aug 06, 2007 5:12 pm
by DmitrySokolowsky
Я думаю, теперь надо для Kfar завести отдельную папку, корневую он уже перерос

Posted: Tue Aug 07, 2007 4:50 pm
by DmitrySokolowsky
Потестил плагин. Работает практически безотказно!
Только я не понял, как упаковывать?
Posted: Thu Aug 09, 2007 10:52 am
by DmitrySokolowsky
Вчера и сегодня залез во все имеющиеся у меня архивы 7z, копировал из них на раздел FAT32, просматривал по F3 и не заметил ни единого глюка! Smile
Только прошу ещё сделать запуск программ по Enter прямо из архива.
Posted: Thu Aug 16, 2007 12:05 pm
by diamond
Значит, так, опережая расспросы. К версии 0.5 в kfar появится встроенный редактор. К версии 1.0 будет упаковка в 7z и, возможно, zip.
Только прошу ещё сделать запуск программ по Enter прямо из архива.
С этим есть некоторые проблемы:
1. Программа в архиве может ссылаться на какие-нибудь файлы в том же архиве (простейший пример - kfm*.7z, в котором kfm.kex загружает bmp и ini).
2. (основная) Запустить файл можно только с диска. То есть нужно что-нибудь типа "временной папки" (%TEMP%/%TMP%). Но в Колибри сделать такое может быть просто невозможно - рамдиск забит, а все жёсткие диски могут быть либо вообще невидимыми (SATA), либо с NTFS.
Posted: Thu Aug 16, 2007 12:44 pm
by diamond
Сорри, это было первое пришедшее в голову. Второй пример - dosbox.7z, где dosbox загружает conf-файл с настройками.
Posted: Thu Aug 16, 2007 1:29 pm
by diamond
Mike wrote:хм, diamond, я думал ты в курсе.. угу, типа того. только + несколько интересных вещей типа циклов, условий, отрисовки своих диалогов
я часто использую макросы, причем держу их не в реестре, а использую из пользовательского меню. вот пара примеров: Код:
I: IP Info
del /q "%temp%\ipinfo.txt"
ipconfig /all> %temp%\ipinfo.txt
edit:"%temp%\ipinfo.txt"
macro:post CtrlHome $Rep (Editor.Lines) $if (len(Editor.value)==0) CtrlY $end Down $end CtrlHome F2
U: UPX - Pack
"%FarHome%\Tools\UPX v.2.03w\upx.exe" -!?compression level: 1 - faster, 9 - better:?! -k "!/!.!"
Похоже, мы говорим о разных вещах. Я имел в виду возможности типа "подвесить на Ctrl+Alt+W действия <F4>,<Ctrl+End>,<Enter>,<Ctrl+V>,<F2>,<Esc>", которые в FAR реализуются через <Ctrl+.>,[нажать необходимые клавиши],<Ctrl+.>,[задать комбинацию] или специальным плагином - это в FAR'овской документации называется макросами.
А ты, похоже, говоришь про главное меню, вызываемое по F2. На самом деле сделать такое относительно несложно (проще, скажем, редактора), но при текущем состоянии дел в Колибри не факт, что это принесёт много пользы - программ довольно мало (я имею в виду программы, результат которых имеет смысл для других программ, типа ipconfig), перенаправления ввода-вывода нет, связь с другими программами возможна только через IPC и когда обе программы этого хотят...
Posted: Thu Aug 23, 2007 4:47 pm
by DmitrySokolowsky
К сожалению, по скорости копирования Kfar сильно отстаёт от Kfm...
Я только что в тестовом порядке копировал фильм размером 822 мб с раздела /hd0/2/ (NTFS) на раздел /hd0/1/ (FAT32).
Kfar копировал 20 минут. Я не стал дожидаться окончания копирования. Скопировалось меньше половины фильма

Kfm скопировал его ровно за минуту.
Почему такая огромная разница?
Posted: Thu Aug 23, 2007 7:45 pm
by Mike
[offtop]похоже даже у порта фара это больное место[/offtop]
diamond
пример айпиинфо есть комбинированное ваяние - макрос
Code: Select all
macro:post CtrlHome $Rep (Editor.Lines) $if (len(Editor.value)==0) CtrlY $end Down $end CtrlHome F2
запускается по окончании работы "bat" части
Code: Select all
del /q "%temp%\ipinfo.txt"
ipconfig /all> %temp%\ipinfo.txt
edit:"%temp%\ipinfo.txt"
...
однако, пожалуй, да. согласен. на данный момент пока рановато для макроязыка. редактор действительно важнее.
p.s. на заметку - в стане FARteam на данный момент активно обсуждается вопрос открытия сырцов. тема поднималась уже не раз, однако сейчас, похоже, все серьезно..
Posted: Sat Aug 25, 2007 2:00 pm
by DmitrySokolowsky
А что с Mfar и Kolibri Comander? Они больше не развиваются?
Posted: Sat Aug 25, 2007 10:07 pm
by DmitrySokolowsky
Мне кажется, их развитие нисколько не повредило ведущим на данный момент менеджерам файлов, наоборот - было бы больше конкуренции, а пользователю - больше выбора.
Posted: Sat Aug 25, 2007 10:08 pm
by mike.dld
Атауальпа
Они были хорошими попытками и показали, что нет ничего невозможного. В остальном согласен с Маратом
