 Софтпанорама 1992, No.4(28)*** SPS-NEWS *** Составитель: Н.Н. БЕЗРУКОВ
************************************************************************

                     ╔══════════════════════════╗
                     ║  Н О В О С Т И    О С П  ║
                     ╚══════════════════════════╝

******************** Изменение структуры бюллетеня *********************

    Данный выпуск в порядке эксперимента скомпонован по-новому: большин-
ство разделов размещены не в виде ветвей дерева каталогов, а в виде  от-
дельных LHA-файлов, архивированных с нулевой степенью сжатия (ключ  z1),
которые затем пакуются архиватором  ARJ 2.30 (опубликованном в  одном из
предыдущих выпусков).  Помимо уменьшения  количества подкаталогов,  этот
способ компоновки обеспечивает более высокую степень сжатия. Эксперимен-
ты показали, что за счет  объединения мелких файлов в более  крупные до-
стигается увеличение степени сжатия примерно на 10%. Таким образом чита-
тели  получат  примерно  100K  материалов  дополнительно, по сравнению с
предыдущими выпусками.
    Выбор ARJ для окончательной упаковки сделан в результате  сравнения
результатов работы на одной из версий данного выпуске:

                 SP44A    ZIP    716559  3 minutes; 4 seconds
                 SP44A    LZH    753966  4 minutes; 31 seconds
                 SP44A    ARJ    718795  3 minutes; 53 seconds

     Как видно из приведенной таблицы, LHA существенно проиграл Pkzip  и
Arj по размеру архива. Время сжатия определено неточно, поскольку  испо-
льзовалось кэширование и PKZIP, будучи первым, работал в худших  услови-
ях, чем остальные  (Pkzip запускался с  ключем -ex). Меня  заинтересовал
этот факт, который противоречил моему  опыту и впечатлению от Arj  (клон
Lha с миллионом ключей). Получив справки и отсортировав их по алфавиту,
я обнаружил, что Arj выигрывает, в основном, при сжатиии текстовых файлов
(2-5%), что с учетом их количества в бюллетене дает результирующие 35K 
разницы. Сравнительная таблица имеет вид:

                                      Arj 2.30       Lha 2.13
                                    ───────────   ──────────────
       APRIL-1.LZH       71732      33111 46.2% ║  33030   46.0%
       ARTICLES.LZH     114430      41642 36.4% ║ *43956   38.4%
       BALTER.LZH        35556      11155 31.4% ║  11282   31.7%
       BEREZIN.A44       14759       6171 41.8% ║   6230   42.2%
       BUNICH.LZH        24166       7733 32.0% ║   8176   33.8%
       CHALJUK.LZH       72901      31175 42.8% ║ *35683   48.9%
       CONFIG.LZH         2034       1418 69.7% ║   1418   69.7%
       CONTENT            1510        779 51.6% ║    778   51.5%
       CONTENT.04_        1051        519 49.4% ║    519   49.4%
       DBVIEW.LZH         5968       4281 71.7% ║   4281   71.7%
       DOLINSKI.A44      23509      10959 46.6% ║  11092   47.2%
       ERRATUM.LZH       31970      15307 47.9% ║  15672   49.0%
       FEATURES.LZH      48098      21859 45.4% ║  22418   46.6%
       FEEDBACK.LZH      33293      15486 46.5% ║  15763   47.3%
       FOREWORD.A44      13930       7123 51.1% ║   7233   51.9%
       FRANDSEN.LZH      13613       6725 49.4% ║   7201   52.9%
       GANDALF.LZH       74891      35774 47.8% ║  36288   48.5%
       HELP.LZH          91768      26277 28.6% ║ *29244   31.9%
       ISMODEM.LZH       13137       6841 52.1% ║   6861   52.2%
       KALASHNI.LZH      48129      24970 51.9% ║  25105   52.2%
       KOHMANUK.LZH      10359       3593 34.7% ║   3588   34.6%
       KOHMANUK.LZH      15072       8528 56.6% ║   8515   56.5%
       KOPYLOW.LZH       10917       5799 53.1% ║   5812   53.2%
       KORZUNN.LZH       27110      10992 40.5% ║ *12371   45.6%
       KORZUNN.LZH       24128       7956 33.0% ║   7966   33.0%
       KORZUN.LZH        63303      35164 55.5% ║  35089   55.4%
       KRASNOV.LZH        4203       1796 42.7% ║   1797   42.8%
       KUZNETSO.LZH       8160       5182 63.5% ║   5183   63.5%
       LOBODA.LZH        20891       4391 21.0% ║   4366   20.9%
       MAIN.LZH          57606      24973 43.4% ║  24939   43.3%
       ME_TC.LZH          5319       2297 43.2% ║   2295   43.1%
       MKEY.LZH         112559      32384 28.8% ║ *42666   37.9% !!
       MURMANSK.LZH      13290      12655 95.2% ║ *12666   95.3%
       NC_COLOR.LZH      31823      28927 90.9% ║ *28910   90.8%
       NEMIROV.LZH       55626      12619 22.7% ║ *13601   24.5%
       README.LZH        51229      20924 40.8% ║ *22812   44.5%
       RING.LZH          15004       9307 62.0% ║   9357   62.4%
       RUDENKO.LZH        7434       5028 67.6% ║   5026   67.6%
       SERKOV.LZH        14326       8420 58.8% ║   8420   58.8%
       SHARGOR.LZH       21370       9198 43.0% ║ *10467   49.0%
       SHARIY.LZH        10616       4129 38.9% ║   4164   39.2%
       SHEHOVTS.LZH      23863       7955 33.3% ║  *8563   35.9%
       SHKOLNIK.LZH       2053       1211 59.0% ║   1212   59.0%
       SHOHAN.LZH        13765      12733 92.5% ║  12731   92.5%
       SRC.LZH          161797      40475 25.0% ║ *44614   27.6%
       STARFONT.LZH      19064       4774 25.0% ║   4697   24.6%
       STERNIK.LZH       88304      32777 37.1% ║ *34004   38.5%
       TREEINFO.NCD        267        226 84.6% ║    226   84.6%
       UKR-CLUB.LZH      63384      13024 20.5% ║  13321   21.0%
       VDIR.LZH           9232       6164 66.8% ║   6170   66.8%
       VIEWNC.LZH         7214       2835 39.3% ║   2835   39.3%
       YAKOVLEV.LZH      44444      26613 59.9% ║ *27945   62.9%
       ZAHARENK.LZH       4666       2824 60.5% ║   2824   60.5%
       ZAP.LZH            1906       1388 72.8% ║   1388   72.8%
       ------------ ---------- ---------- ----  ║ ------  ------
          54 files     1756749     716566 40.8% ║ 752770   42.9%


     Кстати эффект может  быть гораздо больше  10%. В качестве  дополни-
тельного эксперимента автор свернул свою библиотеку BAT-файлов (98  фай-
лов, общим размером 9074 байта) старым и новым способами:

                               "старый"         "новый"
               PROCLIB  ARJ     10448            5224
               PROCLIB  LZH      8918            5168
               PROCLIB  ZIP     14308            5235


      Как видно из приведенных данных, эффект может достигать 173% и оп-
ределяется, в основном, размером заголовка, используемым контретным  ар-
хиватором. Фактически здесь  ясно видно, что  Lha имеет самый  маленький
заголовок сжатого файла, а Pkzip - самый большой.

     Что касается методики работы с новым форматом бюллетеня, то я сразу
сделал себе два простейших пакетных файла, первый из которых запускается
прямо из NC по расширению .lzh и при нажатии клавиши ENTER разворачива-
ет архив в подкаталог с  тем же именем, а второй,  наоборот, сворачивает
подкаталог в архив с нулевой степенью сжатия:

              "раскрутка"                  "свертка"

                md %1                        cd %1
                cd %1                        lha m -z1 ..\%1
                lha x ..\%1.lzh              cd ..
                cd ..                        rd %1

      Поскольку данная методика представляет интерес и для хранения дру-
гих пакетов,  для других  архивов, возникает  потребность с  специализи-
ровнных инструментальных средствах, которые могли бы облегчить работу с
такой структурой архива. Первое, что приходит в голову, это приспособить
rearj. Полезны  также дополнительные  специализированные утилиты,  такие
как утилиты Никиты Корзуна, публикуемые в данном выпуске (см  ARC-CLUB).
Ниже следует их краткое описание:
      Программа KNL формирует параметры  и запускает с ними  упаковщики.
Может работать без параметров, с параметрами, со значениями из  конфигу-
рационного файла. Формат запуска:
                  KNL.EXE [Drive:][Dir\][ArcName]
      При запуске KNL без  параметров формируется и запускается  команда
LHA.EXE u -rxa LastDirName, где LastDirName - последнее имя текущей  ди-
ректории. Примеры вызовов:
                  KNL
                  KNL ..
      В файле  KNL.CFG, задается  шаблон командной  строки. Используются
параметры: !: Имя текущего диска; !\ Имя текущей директории; !#  Послед-
нее имя текущей директории !% Параметр при запуске KNL; !@ Параметр  при
запуске KNL. Например:
          C:\ADDOS\lha212.exe m -rxl2z2a !:!\!@
          E:\UTIL\PACK\ice.exe a MYARC
          D:\PKZIP\pkzip.exe -a !@
      Программа KNL выходит с тем  же Exit Code, что и  запускаемый упа-
ковщик. Кроме того,  программу можно запустить  с параметром '\',  тогда
упаковка будет производиться в специально уазанную LZH директорию.  Воз-
можен параметр '-'; с этим параметром LHA.EXE запускается с опциями 'm -
rxa' (перенос). Имя упаковщика, его параметры, параметры для переноса  и
имя LZH директории по умолчанию можно изменить непосредственно в KNL.EXE
по адресам: 2A2h, 28Ah, 27Eh, 256h соответственно.

      Утилита KNLD  проходит по  подкаталогам первого  уровня, формирует
параметры и запускает с ними упаковщики. Может работать без  параметров,
с параметрами, со значениями из конфигурационного файла. Формат запуска:
      KNLD.EXE [SubDir1] [SubDir2] [SubDir3] [...]
      При запуске  KNLD без  параметров программа  заходит поочередно во
все  подкаталоги  первого  уровня  и  запускает команду, определяемую по
умолчанию или из конфигурационного файла.

      И, наконец, утилита KNUP  для каждого архива в  текущей директории
создает подкаталог с  именем архива и  запускает в нее  распаковку. Если
запущена без параметров - работает для всех архивов в текущем  каталоге;
возможные параметры - имена архивов. Названия распаковщиков и их параме-
тры можно изменять.

                                                                  Б.Н.Н.





