Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Архивы и Архиваторы    >>    ae
   
 
 Archive Enhanser для Volcov Commander  Павел Максимов 27.03.1995

Предлагаемый вниманию способ архивирования выделенных файлов основан на способности Volcov Commander вызывать при нажатии клавиши F4 (или Shift-F4) различные редакторы в зависимости от расширений редактируемых файлов. Так как файлы с расширениями .ARJ, .ZIP и т.д. вряд-ли кому придет в голову редактировать текстовым редактором, ту же клавишу F4 можно использовать для вызова архиваторов.



4k 
 

+--------------------+ | Archiver Enhancer | ++--------------------++ | +- +- \ / +- | | ++ +- +- )( +- | | ++ +-  +- / \ +- | +-----+----------+-----+ | (AE.EXE) | Phone: 936-1826 (voice & noise) +--+----+--+ Modem: 300-2400 baud V42bis | by | +----+ |\ /| /\ + + | \ / | / \ \ / | \ / | / \ \ / | \/ | /------------\ / \ +- +- | | | / \ / \ ++ ++ +--Ћ- + + + + + + -+ ++ | +- (Максимов Павел Вадимович) Многие пользователи персональных компьютеров используют ар- хиваторы для упаковки текстов, программ и данных. Наиболее попу- лярны по мнению автора в настоящее время архиваторы ARJ и ZIP. За многолетнюю историю их создания они приобрели удобный синтаксис, обеспечивают достаточно высокую плотность сжатия и скорость рабо- ты. Однако непрерывное появление новых, более совершенных архива- торов заставляет пользователя изучать их синтаксис. Стремление как можно плотнее упаковать файлы приводит к необходимости испы- таний, какой архиватор лучше пакует. Из за отсутствия унификации в процессе таких испытаний приходится держать в голове форматы команд этих архиваторов, что неудобно. Кроме того, если необходи- мо заархивировать не все файлы из текущего подкаталога, имена файлов приходится вписывать одно за другим в командную строку. Архиватор RAR имеет удобную, но ни на что иное не похожую встро- енную оболочку, позволяющую просматривать оглавления различных архивов, но архивировать выделенные в ней файлы можно только в формате архиватора RAR. Программисты не раз пытались облегчить жизнь пользователям архиваторов, создавая различные оболочки (например, ArjMenu), припарки и прибамбасы, такие, как программа NCA, заменяющая в Norton Commander 3.0 пункт меню 'Send files' на 'Arc files' и позволяющая таким образом архивировать выделенные файлы, прибам- бас к Нортону под названием ARD, служащий для той же цели, но с несравненно более убогим сервисом. Приношу извинения авторам упо- мянутых программ за то, что я не помню их имен, т. к. все это давно стерто. Все названные программы имеют один недостаток - ориентированы на конкретный архиватор (или набор архиваторов), который невозможно расширить (по крайней мере, силами непрофесси- онального хакера :-). Еще один путь унификации интерфейса пользователя при работе с архиваторами приведен в описании к программе Volkov Commander (VC) 4.00.040 beta (скорей всего, и в более ранних версиях есть). Там предлагается организовать несколько вложенных меню, в которых выбирается архиватор, после чего формируется командная строка вы- зова архиватора с передачей в качестве параметра файла vc.lst, содержащего список выделенных файлов. Такой прием имеет явное преимущество - возможность использования любого набора архивато- ров, способных работать со списком файлов. Одним из недостатков метода является невозможность задания имени архива - оно опреде- ляется именем файла, на который в момент нажатия клавиши F2 ука- зывала светлая полоска. Другим очевидным недостатком является от- сутствие в некоторых архиваторах (например, HA 0.98 by Harri Hirvola, HAP 3.00 by Hamarsoft) функции архивирования файлов по списку. Предлагаемый вниманию способ архивирования выделенных файлов основан на способности VC вызывать при нажатии клавиши F4 (или Shift-F4) различные редакторы в зависимости от расширений редак- тируемых файлов. Так как файлы с расширениями .ARJ, .ZIP и т.д. вряд-ли кому придет в голову редактировать текстовым редактором, ту же клавишу F4 можно использовать для вызова архиваторов. Ко- мандные строки архиваторов такие же, как в описании к VC. Ниже приводится фрагмент файла vcedit.ext, отвечающий за запуск архи- ваторов. +------------------------------+ | rar: RAR A -r ! @!@ | | arj: ARJ A -r -wh: ! !!!@ | | ain: AIN A -r -m1 -wh: ! @!@ | | lim: LIMIT A -s -mx ! @!@ | | zip: PKZIP -ex -bh: ! @!@ | | lzh: LHA A -x ! @!@ | | arc: PKPAK -a ! @!@ | +------------------------------+ Если создается новый архив, то после выделения файлов нажимают Shift-F4 и в появившемся окне набирают имя создаваемого архива (обязательно с расширением). Происходит запуск архиватора и архи- вирование выделенных файлов. Если файлы выделены не были, архиви- руется тот файл, на который указывает светящаяся полоска. При не- обходимости добавить выделенные файлы к имеющемуся архиву, отмеча- ют файлы, устанавливают полоску на архив и нажимают F4. Если ар- хив и архивируемые файлы находятся в разных каталогах, то после нажатия Shift-F4 в окне необходимо указать полный путь к архиву. Светлая полоска и выделенные файлы обязательно должны находиться в одном окне. Неожиданным достоинством способа является использование для архивирования тех же клавиш, которые используются для распаков- ки архивов в одном из лучших архивных вьюэров: ArcView by SergDesign Сергея Назаренко. +--------+-------------------------+-------------------------------+ |Клавиша | Упаковка файлов |Распаковка файлов (ARCVIEW.EXE)| +--------+-------------------------+-------------------------------+ | F4 | Добавление к архиву | В текущий каталог | +--------+-------------------------+-------------------------------+ | | Создание нового архива; | | |Shift-F4| добавление к архиву в | В другой каталог | | | в другом каталоге | | +--------+-------------------------+-------------------------------+ С помощью прибамбаса, описанного в следующем разделе трактата удалось научить VC работать с архиваторами, не умеющими "читать" список файлов. К недостаткам предлагаемого способа относится невозможность изменения параметров архивирования (например, включения/отключе- ния установки пароля на архив, включения/отключения стирания фай- лов после записи в архив). Однако ставить пароль на архив прихо- дится довольно редко и по зтому случаю можно отказаться от авто- матизации и набрать командную строку вручную. Заново отметить "погасшие" заархивированные файлы и удалить их можно, нажав кла- виши Ctrl-M, F8. О программе AE.EXE Принцип работы программы предельно прост. Программа читает список архивируемых файлов и формирует командную строку вызова архиватора, раскрывая в командной строке список файлов. Формат вызова программы: AE [/?] <Path to archiver> [parameters] @listfile [parameters] где Path to archiver - полный путь к архиватору ( <= 15 символов), parameters - параметры, передаваемые архивируюцей программе, listfile - имя файла, содержащего список архивируемых файлов. Параметрами, передаваемыми в программу, являются полный путь к архиватору, параметры, передаваемые архивируюцей программе и имя файла, содержащего список архивируемых файлов. Параметр /? вызывает на экран короткий текст подсказки, при этом все осталь- ные параметры игнорируются. Параметры передаются архиватору в том же порядке, в каком они записаны в командной строке для AE.EXE. Например, команда AE e:\arch\ha.exe a archive.ha @files.lst запустит архиватор HA.EXE со следующей командной строкой: ha.exe a archive.ha ae.doc ae.exe ae.pas (предполагается, что эти три имени файлов были записаны в файле files.lst). Фрагмент файла vcedit.ext для вызова архиваторов HA.EXE (версии 0.98) и HAP3.EXE (версии 3.00): +---------------------------------+ | ha : AE h:\exe\HA.exe A21 ! @!@ | | hap: AE h:\exe\HAP3.exe a ! @!@ | +---------------------------------+ В заключение хочу поблагодарить Алексея Звездина (=ToP*GuN=) и Константина Звездина за знакомство с программами ArjMenu, NCA, ARD и Volkov Commander, а Московский Институт Радиотехники, Электроники и Автоматики эа приобретенную способность к програм- мированию на Паскале. П.В.Максимов E-mail: maximov@ippi.ac.msk.su AE/? for help Usage: AE [/?] <Path to archiver> [parameters] @listfile [parameters] Example: AE e:\arch\ha.exe a archive.ha @files.lst