File: multiarc.html

package info (click to toggle)
doublecmd-help 1.1.30-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,812 kB
  • sloc: makefile: 12
file content (609 lines) | stat: -rw-r--r-- 77,881 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>DC - Работа с архивами</title>
    <link rel="stylesheet" type="text/css" href="doublecmd.css">
    <link rel="shortcut icon" href="../../pixmaps/common/favicon.ico">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>

  <body>
    <a name="topofpage"></a>
    <div class="header"><a href="index.html"><img src="../../pixmaps/common/dclogo2017.png" alt="Double Commander" height="48" width="374"></a>
      <div id="global-nav" class="nav"><a title="Домашняя страница Double Commander" href="https://doublecmd.sourceforge.io/" target="_blank">Домашняя страница</a> | <a title="Вики Double Commander" href="https://github.com/doublecmd/doublecmd/wiki" target="_blank">Вики</a></div>
    </div>
    <div class="footer"><div class="nav"><a title="Начало" href="index.html">Начало</a> | <a title="Предыдущая страница" href="directoryhotlist.html">Пред.</a> | <a title="Следующая страница" href="toolbar.html">След.</a></div></div>

    <div class="dchelpage">
      <div>
        <h1>2.10. Работа с архивами</h1>
      </div>

      <div>
        <h2>Содержание</h2>
        <dl>
          <dt>1. <a href="#workingcomp">Работа со сжатыми файлами</a></dt>
          <dt>2. <a href="#withplugin">Работа с плагинами</a></dt>
          <dt>3. <a href="#archivers">Работа с внешними архиваторами</a></dt>
          <dt>4. <a href="#config">Настройка интеграции внешних архиваторов</a></dt>
          <dd>
            <dl>
              <dt>4.1. <a href="#addingnew">Добавление нового внешнего архиватора</a></dt>
              <dt>4.2. <a href="#variables">Переменные для команд внешнего архиватора</a></dt>
              <dt>4.3. <a href="#modifiers">Модификаторы переменных</a></dt>
              <dt>4.4. <a href="#actionlist">Настройка действия "Список"</a></dt>
              <dt>4.5. <a href="#recuperate">Получение списка содержимого</a></dt>
              <dd>
                <dl>
                  <dt>4.5.1. <a href="#delimit">Разграничение области для анализа</a></dt>
                  <dt>4.5.2. <a href="#parsing">Разбор списка содержимого</a></dt>
                  <dt>4.5.3. <a href="#standardparsing">Стандартный синтаксис разбора вывода</a></dt>
                  <dt>4.5.4. <a href="#standardexample">Пример со стандартным синтаксисом</a></dt>
                  <dt>4.5.5. <a href="#advancedparsing">Расширенный синтаксис разбора вывода</a></dt>
                  <dt>4.5.6. <a href="#advancedexample">Пример с расширенным синтаксисом</a></dt>
                </dl>
              </dd>
              <dt>4.6. <a href="#actionextract">Настройка действия "Извлечь"</a></dt>
              <dt>4.7. <a href="#actionadding">Настройка действия "Добавить"</a></dt>
              <dt>4.8. <a href="#actiondelete">Настройка действия "Удалить"</a></dt>
              <dt>4.9. <a href="#actiontest">Настройка действия "Проверить"</a></dt>
              <dt>4.10. <a href="#actionextractnpath">Настройка действия "Распаковать не учитывая пути"</a></dt>
              <dt>4.11. <a href="#actionselfextract">Настройка действия "Создать самораспаковывающийся архив"</a></dt>
              <dt>4.12. <a href="#configids">Использование ID</a></dt>
              <dt>4.13. <a href="#debug">Отладка</a></dt>
              <dt>4.14. <a href="#other">Меню кнопки "Другое"</a></dt>
            </dl>
          </dd>
          <dt>5. <a href="#openassociation">Открытие файла архива в ассоциированном приложении</a></dt>
        </dl>
      </div>

      <div>
        <h2><a name="workingcomp">1. Работа со сжатыми файлами</a></h2>
        <p>Double Commander может работать со сжатыми файлами, как если бы это были простые папки.</p>
        <p>Например, если у нас в панели есть файл ZIP, мы можем просто выбрать его, нажать <kbd>Enter</kbd> и в панели будет показано содержимое этого файла так же, как если бы мы перешли в каталог.</p>
        <p>Double Commander достаточно универсален, чтобы через собственный интерфейс использовать внешние программы для работы со сжатыми файлами. Приложение использует два разных принципа:</p>
        <ul>
          <li>с помощью плагинов;</li>
          <li>читая и разбирая вывод командной строки внешнего архиватора.</li>
        </ul>
        <p>При попытке открыть архив Double Commander сначала проверяет список доступных архиваторных плагинов.</p>
        <p>"Внутри" сжатого файла мы можем выполнять некоторые минимальные базовые функции, такие как просмотр файла, копирование его в другую панель и некоторые другие.</p>
        <p>На изображении ниже показан пример открытия сжатого файла "help.rar":</p>
        <p class="figure"><img class="largeimage" title="Просмотр архива" alt="Просмотр архива" src="images/imgDC/archiveimg1.png" width="768" height="454"></p>
        <p>После вызова команды просмотра (<kbd>F3</kbd>) или редактирования (<kbd>F4</kbd>), Double Commander извлечёт файл под курсором в системный каталог для временных файлов и откроет. После закрытия просмотрщика временный файл будет удалён. Если открытый в редакторе файл будет изменён, Double Commander предложит упаковать его обратно (если формат сжатых файлов и архиваторный плагин или внешний архиватор поддерживают такую возможность).</p>
        <p>При использовании двойного щелчка мыши или нажатии <kbd>Enter</kbd> Double Commander покажет окно свойств упакованного файла:</p>
        <p class="figure"><img class="largeimage" title="Свойства упакованного файла" alt="Свойства упакованного файла" src="images/imgDC/archiveimg27.png" width="278" height="316"></p>
        <p>В строке <span class="italic">Архиватор</span> отображается имя используемого архиваторного плагина или имя внешнего архиватора.</p>
        <p>Кнопки:</p>
        <ul>
          <li><p><span class="italic">Закрыть</span>&nbsp;&ndash; закроет окно свойств.</p></li>
          <li><p><span class="italic">Распаковать и выполнить</span>&nbsp;&ndash; Double Commander извлечёт файл под курсором в системный каталог для временных файлов и вызовет действие по умолчанию из <a href="configuration.html#ConfigAssociations">внутренних</a> или системных файловых ассоциаций.</p></li>
          <li><p><span class="italic">Выполнить, распаковав все</span>&nbsp;&ndash; как предыдущее, но предварительно будет извлечено всё содержимое архива.</p></li>
        </ul>
        <p>Double Commander позволяет настроить автоматическое открытие файла в ассоциированной программе напрямую, используйте <a href="configxml.html">&lt;AutoExtractOpenMask&gt;</a>.</p>
        <p>При закрытии Double Commander удаляет все временные файлы.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="withplugin">2. Работа с плагинами</a></h2>
        <p>Мы можем настроить Double Commander на использование "архиваторных плагинов", которые помогут справиться со сжатым файлом.</p>
        <p>Дистрибутив Double Commander уже включает в себя <a href="plugins.html#wcx">некоторые</a> из подобных WCX-плагинов.</p>
        <p>Кроме того, в Интернете мы можем найти ряд других WCX-плагинов.</p>
        <p>Также помните, что плагины, написанные для работы с Total Commander, должны работать и с Double Commander.</p>
        <br>
        <p>Чтобы установить, включить или настроить их, нам нужно зайти в Настройки&nbsp;&gt; Параметры...&nbsp;&gt; Плагины&nbsp;&gt; Плагины WCX:</p>
        <p class="figure"><img class="largeimage" title="Настройки&nbsp;&gt; Плагины WCX" alt="Настройки&nbsp;&gt; Плагины WCX" src="images/imgDC/archiveimg2.png" width="694" height="380"></p>
        <p><i>Пожалуйста, имейте в виду, что для некоторых форматов поддерживается только чтение, то есть доступны только просмотр содержимого, распаковка и тестирование.</i></p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="archivers">3. Работа с внешними архиваторами</a></h2>
        <p>Иногда нужного плагина просто не существует.</p>
        <p>Или по какой-то причине, такое иногда может случиться, мы хотим явно использовать внешний архиватор в силу функционального преимущества или чего-то, что не умеет обычный архиваторный плагин.</p>
        <p>Double Commander использует механизм работы с внешними архиваторами аналогичный плагину <a href="http://wcx.sourceforge.net/" target="_blank">MultiArc</a> для Total Commander.</p>
        <p>Чтобы было понятнее, <b>использование внешнего архиватора можно описать следующим образом: это способ запустить архиватор, но заставить Double Commander управлять им, передавая исполняемому файлу архиватора различные параметры, которые нам понадобятся для интеграции с приложением</b>.</p>
        <p>Оставшаяся часть этой страницы будет посвящена вопросу настройки Double Commander для использования внешнего архиватора.</p>
        <p>Предположим, мы хотим использовать "rar.exe" для работы с архивами RAR.</p>
        <p>Как можно догадаться, <b>необходимо настроить вызов внешнего архиватора для того, чтобы мы могли...</b></p>
        <ul>
          <li>получить список содержимого файла архива;</li>
          <li>распаковать архив;</li>
          <li>добавить один файл или список файлов в существующий архив или создать новый;</li>
          <li>извлечь из архива один файл или список файлов.</li>
        </ul>
        <p>Все эти действия будут сконфигурированы в окне настроек Double Commander в разделе "Архиваторы":</p>
        <p class="figure"><img class="largeimage" title="Настройки&nbsp;&gt; Архиваторы" alt="Настройки&nbsp;&gt; Архиваторы" src="images/imgDC/archiveimg3.png" width="854" height="571"></p>
        <p>Все настройки сохраняются в файл <tt>multiarc.ini</tt>.</p>
        <p>Давайте рассмотрим универсальные возможности, предлагаемые нам Double Commander для использования внешнего упаковщика.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="config">4. Настройка интеграции внешних архиваторов</a></h2>
        <p>Мы не будем описывать здесь, в начале, каждое поле, вместо этого подробно, шаг за шагом, разберём пример интеграции внешнего архиватора "rar.exe".</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="addingnew">4.1. Добавление нового внешнего архиватора</a></h2>
        <p>Нажимаем кнопку "Добавить", указываем имя архиватора и теперь мы готовы его настроить.</p>
        <p class="figure"><img class="largeimage" title="Добавить новый внешний архиватор" alt="Добавить новый внешний архиватор" src="images/imgDC/archiveimg4.png" width="604" height="395"></p>
        <br>
        <p>Далее нам нужно добавить описание архиватора, путь к исполняемому файлу, а затем расширение файла, без точки.</p>
        <p>Если у нас более одного возможного расширения, просто перечисляем их через запятую, без пробела.</p>
        <p class="figure"><img class="largeimage" title="Добавить новый внешний архиватор" alt="Добавить новый внешний архиватор" src="images/imgDC/archiveimg5.png" width="704" height="211"></p>
        <p>Примечание: Double Commander поддерживает двойные расширения (например, "tar.gz", "tar.xz" и так далее), они должны размещаться в начале списка расширений (то есть "tar.gz" до "gz").</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="variables">4.2. Переменные для команд внешнего архиватора</a></h2>
        <p>Как упоминалось ранее, нам нужно настроить вызов исполняемого файла внешнего архиватора для необходимых нам действий.</p>
        <p>Чтобы помочь в этом, Double Commander предлагает нам ряд переменных, ниже представлена таблица доступных:</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Определение команды</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Переменная</th><th class="categorydesccolumn">Что означает</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%P</div></td><td class="hintcell">Длинное имя архиватора (как в поле "Архиватор")</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%p</div></td><td class="hintcell">Короткое имя архиватора (как в поле "Архиватор")</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%A</div></td><td class="hintcell">Длинное имя файла архива</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%a</div></td><td class="hintcell">Короткое имя файла архива</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%L</div></td><td class="hintcell">Список файлов.<br>Это файл, содержащий имена файлов, которые будут обрабатываться внешним архиватором.<br>Имена файлов длинные.</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%l</div></td><td class="hintcell">Список файлов с короткими именами файлов</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%F</div></td><td class="hintcell">Имя одного файла для обработки.<br>Архиватор будет вызван несколько раз, до тех пор, пока не будут обработаны все файлы.<br>Эта переменная должна использоваться только в том случае, если архиватор не поддерживает работу со списком файлов в командной строке.</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%V</div></td><td class="hintcell">Размер тома (для многотомного архива)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%W</div></td><td class="hintcell">Пароль</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%E&lt;errorlevel&gt;</div></td><td class="hintcell">Максимальный допустимый код завершения (errorlevel, код выхода).<br>Например, <code>%E2</code> означает, что принимаются коды завершения 0, 1 и 2.<br>Эта переменная может быть указана в любом месте команды.<br>Если она не используется, то только код завершения 0 считается успешным.</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%O&lt;модификатор&gt;</div></td><td class="hintcell">По умолчанию Double Commander конвертирует вывод архиватора из кодировки OEM (DOS) в UTF-8.<br>Используйте её для переопределения кодировки, возможные модификаторы смотрите ниже.<br>Может использоваться только с командой "Список".</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%R</div></td><td class="hintcell">Целевая поддиректория В архиве</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">{}</div></td><td class="hintcell">Если какая-то переменная заключена в фигурные скобки, то она будет добавлена только если эта переменная содержит что-либо, т.е. не пустая</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">%S</div></td><td class="hintcell">Переменная задаёт позицию для дополнительных параметров командной строки, которые мы можем добавить в <a href="help.html#cm_PackFiles">диалоге упаковки файлов</a></td></tr>
        </table>
        <p>Не беспокойтесь, ниже мы покажем пример для лучшего понимания.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="modifiers">4.3. Модификаторы переменных</a></h2>
        <p>Эти модификаторы могут быть указаны сразу же после переменных, без пробелов.</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Модификаторы переменных</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Буква модификатора</th><th class="categorydesccolumn">Что означает</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">F</div></td><td class="hintcell">включить в список только файлы (применимо к переменным <code>%L</code> и <code>%l</code>)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">Q</div></td><td class="hintcell">брать в кавычки имена с пробелами</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">q</div></td><td class="hintcell">брать в кавычки все имена</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">W</div></td><td class="hintcell">использовать только имя, без пути</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">P</div></td><td class="hintcell">использовать только путь, без имени</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">A</div></td><td class="hintcell">использовать системную кодировку ANSI в Windows или системную кодировку по умолчанию в Unix-подобных системах (в дистрибутивах GNU/Linux это обычно UTF-8); может использоваться с переменными <code>%L</code> и <code>%O</code></td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">U</div></td><td class="hintcell">использовать кодировку UTF-8; может использоваться с переменными <code>%L</code> и <code>%O</code></td></tr>
        </table>
        <p>И снова не волнуйтесь, пример будет ниже.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="actionlist">4.4. Настройка действия "Список"</a></h2>
        <p>Если мы хотим, чтобы Double Commander работал с архивами, как если бы это был каталог с файлами, у нас должна быть возможность получить список файлов в архиве.</p>
        <p>На данный момент нам не нужно его распаковывать! Нет, это лишь вопрос получения списка его содержимого, чтобы Double Commander нам его показал.</p>
        <p>В нашем примере "rar.exe", смотрим его документацию и видим команду "v", которая позволит нам использовать консольное приложение "rar.exe" для получения списка файлов внутри архива:</p>
        <p class="figure"><img class="largeimage" title="rar.exe: параметры запуска" alt="rar.exe: параметры запуска" src="images/imgDC/archiveimg6.png" width="568" height="139"></p>
        <br>
        <p>Значит, для получения списка нам необходимо вызвать "rar.exe" с командой "v" и именем архива.</p>
        <p>Сначала проверим это вручную, с файлом "E:\Temp\just.rar"</p>
        <p class="figure"><img class="largeimage" title="rar.exe: получение списка файлов в терминале" alt="rar.exe: получение списка файлов в терминале" src="images/imgDC/archiveimg7.png" width="800" height="630"></p>
        <br>
        <p>Итак, теперь нам нужно настроить действие "Список", чтобы сообщить Double Commander, как вызвать "rar.exe" для получения содержимого сжатого файла.</p>
        <p>Чтобы сделать это, запишем то же, но уже используя описанные выше переменные и модификаторы.</p>
        <p>Вот как это будет выглядеть:</p>
        <p class="figure"><img class="largeimage" title="Действие: Список" alt="Действие: Список" src="images/imgDC/archiveimg8.png" width="86" height="41"></p>
        <p>У нас получилось <code>%P v %AQ</code>:</p>
        <ul>
          <li><b>%P</b> будет заменено нашим исполняемым файлом, то есть "E:\Program Files\WinRAR\Rar.exe".</li>
          <li><b>v</b> останется как есть, так как является командой архиватора "rar.exe" для просмотра списка файлов.</li>
          <li><b>%A</b>&nbsp;&ndash; это имя архива, мы добавляем к нему "Q", чтобы указать Double Commander на необходимость взять имя в кавычки, если в нём есть пробелы.</li>
        </ul>
        <p>Таким образом, всё это для того, чтобы вызвать внешний архиватор с подходящими параметрами.</p>
        <p>Будет использовано при вызове внутренней команды <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a>.</p>
        <p>Несколько слов об опции "Использовать имя архива без расширения как список": Эта опция предназначена для архивов, которые могут содержать только один файл и имя файла равно имени архива без расширения (Bzip2, XZ и другие). Такие сжатые файлы как правило не содержат имя оригинального файла.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="recuperate">4.5. Получение списка содержимого</a></h2>
        <p>Теперь архиватор будет выводить список файлов внутри архивов.</p>
        <p>Но это еще не всё! Далее нам нужно разобрать вывод архиватора, приведя его к виду, необходимому для показа в файловой панели.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="delimit">4.5.1. Разграничение области для анализа</a></h2>
        <p>Как мы видели на изображении выше, "rar.exe" выводит не просто голые данные.</p>
        <p>Есть некоторая информация, которую мы должны убрать, чтобы сохранить только список файлов.</p>
        <p>К счастью, мы можем указать магическую строку, с которой Double Commander начнёт анализ последующих строк.</p>
        <p>Кроме того, мы можем указать магическую строку, останавливающую разбор данных.</p>
        <p>Поскольку у нас есть пунктирная линия до и после, довольно просто установить эти два параметра:</p>
        <p class="figure"><img class="largeimage" title="Действие: Начало/конец списка" alt="Действие: Начало/конец списка" src="images/imgDC/archiveimg9.png" width="360" height="79"></p>
        <p>В случае, если внешний архиватор выводит данные сразу же, без дополнительных строк, просто оставьте эти поля пустыми.</p>
        <p>Символ карет ("^") указывает, что магическая строка располагается в самом начале строки и никак иначе. В противном случае текст может располагаться в любом месте строки.</p>
        <p>Если магическая строка, останавливающая разбор данных, может быть спутана с именем файла, то Double Commander может прекратить анализ слишком рано, поэтому, когда возможно, полезно уточнить, что эта строка должна начинаться с самого начала строки.</p>
        <p>Есть смысл установить "Конец списка" как можно дальше, но сохраняя его функцию: лучше и безопаснее убедиться, что в будущем не будет путаницы.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="parsing">4.5.2. Разбор списка содержимого</a></h2>
        <p>Теперь Double Commander точно знает, какие данные анализировать для получения списка файлов внутри архива.</p>
        <p>Было бы проще жёстко задать в приложении порядок анализа вывода "rar.exe", но Double Commander этого не делает.</p>
        <p>Вместо этого он чрезвычайно универсален, предоставляя нам возможность полностью настроить анализ!</p>
        <p>Это может быть немного сложнее, но, с другой стороны, это даёт нам максимальную гибкость, поскольку так мы можем использовать внешние архиваторы, о которых разработчики Double Commander даже не знали!</p>
        <p>Для извлечения информации из каждой строки списка файлов мы будем использовать шаблоны.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="standardparsing">4.5.3. Стандартный синтаксис разбора вывода</a></h2>
        <p>Таблица ниже содержит выражения стандартного синтаксиса разбора вывода и, как мы увидим в примере, стандартный синтаксис преимущественно основан на прямой подстановке.</p>
        <p>Когда это возможно, мы будем стараться использовать этот синтаксис, поскольку он работает быстрее, чем описанный далее расширенный.</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Стандартный синтаксис разбора вывода</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Выражение</th><th class="categorydesccolumn">Что означает</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">n</div></td><td class="hintcell">имя файла</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">z</div></td><td class="hintcell">размер несжатого файла</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">c</div></td><td class="hintcell">описание файла</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">p</div></td><td class="hintcell">размер сжатого файла</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">d</div></td><td class="hintcell">день</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">t</div></td><td class="hintcell">месяц</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">TTT</div></td><td class="hintcell">трёхбуквенное имя месяца (Jan, Feb, Mar, ...)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">y</div></td><td class="hintcell">год</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">h</div></td><td class="hintcell">часы</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">H</div></td><td class="hintcell">буква-модификатор часов: a - время до полудня (a.m.), p - время после полудня (p.m.)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">m</div></td><td class="hintcell">минуты</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">s</div></td><td class="hintcell">секунды</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">a</div></td><td class="hintcell">атрибуты</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">e</div></td><td class="hintcell">расширение файла</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">?</div></td><td class="hintcell">пропустить один символ</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">*</div></td><td class="hintcell">пропустить до первого пробела или конца строки</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">+</div></td><td class="hintcell">для имён файлов, расположенных в конце строки: использовать все символы до конца строки</td></tr>
        </table>
        <p>Если архиватор отображает информацию о каждом файле, используя более одной строки, мы должны указать соответствующее количество строк для разбора содержимого (Double Commander поддерживает до 50 строк).</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="standardexample">4.5.4. Пример со стандартным синтаксисом</a></h2>
        <p>Таким образом, вся суть заключается в том, чтобы использовать доступные выражения из предыдущей таблицы для создания шаблона "Формат списка", который в свою очередь укажет Double Commander, как этим архиватором получить содержимое архива: каталоги и имена файлов, размеры файлов, атрибуты, даты и т.д.</p>
        <p>Для удобства скопируем строку текста, полученного нами ранее при ручном запуске архиватора, в текстовый редактор, а строкой ниже напишем соответствующий шаблон из выражений предыдущей таблицы.</p>
        <p>Вот что у нас получится:</p>
        <p class="figure"><img class="largeimage" title="Формат списка: пример со стандартным синтаксисом" alt="Формат списка: пример со стандартным синтаксисом" src="images/imgDC/archiveimg10.png" width="818" height="150"></p>
        <p>Итак, мы написали шаблон:</p>
        <ul>
          <li>серия "a" соответствует атрибутам файлов;</li>
          <li>серия "z" соответствует размеру несжатых файлов;</li>
          <li>буквы даты и времени соответствуют дате и времени файлов;</li>
          <li>серия "n", с запасом, соответствует именам файлов.</li>
        </ul>
        <p>И нам осталось только исключить 4 пробела в начале строки, заменив их на "????".</p>
        <p>Теперь выделим наш архив "just.rar" в панели, нажмём <kbd>Enter</kbd>, чтобы войти в него как в каталог, и видим, что показ содержимое файла работает (за исключением последнего файла...):</p>
        <p class="figure"><img class="largeimage" title="Просмотр архива: пример со стандартным синтаксисом" alt="Просмотр архива: пример со стандартным синтаксисом" src="images/imgDC/archiveimg11.png" width="668" height="570"></p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="advancedparsing">4.5.5. Расширенный синтаксис разбора вывода</a></h2>
        <p>Следующая таблица представляет нам расширенный синтаксис разбора вывода внешнего архиватора.</p>
        <p>Использование элементов этого синтаксиса требует немного больше времени для обработки, поэтому используйте их только тогда, когда иначе невозможно разрешить проблемную ситуацию.</p>
        <p>Пример его использования будет приведён в следующем разделе.</p>
        <table>
          <tr class="rowcategorytitle"><th colspan="2">Расширенный синтаксис разбора</th></tr>
          <tr class="rowsubtitle"><th class="namecolumn">Выражение</th><th class="categorydesccolumn">Что означает</th></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">+</div></td><td class="hintcell">после имени не в конце строки: использовать все символы до следующего пробела</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">+</div></td><td class="hintcell">после любого числового поля: использовать все цифры до первого нецифрового символа</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">n+</div></td><td class="hintcell">имя файла: использовать все символы до конца строки</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">z+</div></td><td class="hintcell">размер несжатого файла: использовать все цифры до первого нецифрового символа</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">p+</div></td><td class="hintcell">размер сжатого файла: использовать все цифры до первого нецифрового символа</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">$</div></td><td class="hintcell">пропустить все пробелы/табуляции до следующего символа или до конца строки</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">\</div></td><td class="hintcell">данные продолжаются на следующей строке (поддерживается максимум 2 строки)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">x</div></td><td class="hintcell">в точности один пробел; если на этом месте находится другой символ, то вся строка игнорируется</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">z=1024</div></td><td class="hintcell">размер несжатого файла, умноженный на указанное значение (в данном случае: 1024)</td></tr>
          <tr><td class="varcell"><div class="firstcolumnaleft">p=1024</div></td><td class="hintcell">размер сжатого файла, умноженный на указанное значение (в данном случае: 1024)</td></tr>
        </table>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="advancedexample">4.5.6. Пример с расширенным синтаксисом</a></h2>
        <p>Пример со стандартным синтаксисом оказался хорош, но не идеален.</p>
        <p>В некоторых случаях он будет работать неправильно.</p>
        <p>С огромными файлами размер будет намного шире, чем ожидалось, поэтому наша первая попытка не удалась.</p>
        <p>Посмотрите на наш файл <code>007 Skyfall.TS</code>.</p>
        <p>Мы видим, что отображается неверная информация. Давайте сравним:</p>
        <p class="figure"><img class="largeimage" title="Просмотр архива: неверная информация" alt="Просмотр архива: неверная информация" src="images/imgDC/archiveimg12.png" width="756" height="122"></p>
        <p>Видим ошибки в имени файла, размере, дате и т.д.</p>
        <p>Давайте для разрешения этой проблемной ситуации воспользуемся элементами расширенного синтаксиса.</p>
        <p>Вот что можно использовать, даже если выводимое поле не всегда *точно* одной и той же ширины:</p>
        <p class="figure"><img class="largeimage" title="Формат списка" alt="Формат списка" src="images/imgDC/archiveimg13.png" width="258" height="41"></p>
        <p>Немного сложнее, но очень легко описать, и в конце мы увидим, что всё это не так уж сложно.</p>
        <p>Раскрашенное описание поможет нам визуализировать каждый маленький блок разбора:</p>
        <p class="figure"><img class="largeimage" title="Формат списка: пример с расширенным синтаксисом" alt="Формат списка: пример с расширенным синтаксисом" src="images/imgDC/archiveimg14.png" width="678" height="495"></p>
        <p>Итак, используя эту строку формата списка, мы можем проверить снова и теперь у нас есть правильный результат даже для огромного файла:</p>
        <p class="figure"><img class="largeimage" title="Просмотр архива: пример с расширенным синтаксисом" alt="Просмотр архива: пример с расширенным синтаксисом" src="images/imgDC/archiveimg15.png" width="668" height="570"></p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="actionextract">4.6. Настройка действия "Извлечь"</a></h2>
        <p>Это строка вызова внешнего архиватора для извлечения файла или всех файлов из выбранного архива, будем использовать те же <a href="#variables">переменные</a> и их <a href="#modifiers">модификаторы</a>.</p>
        <p>Продолжаем работу с "rar.exe", из документации мы знаем, что для извлечения файла или группы файлов используется команда "x".</p>
        <p>С "rar.exe" мы также можем указать в параметре список файлов для извлечения.</p>
        <p>Воспользуемся предлагаемой Double Commander переменной <code>%L</code>, которая создаст текстовый файл с выделенными для извлечения файлами, и передадим его как параметр.</p>
        <p>Ниже представлена строка для извлечения на примере "rar.exe":</p>
        <p class="figure"><img class="largeimage" title="Действие: Извлечь" alt="Действие: Извлечь" src="images/imgDC/archiveimg16.png" width="146" height="41"></p>
        <p>Описание этого примера:</p>
        <ul>
          <li><b>%P</b> будет заменено исполняемым файлом архиватора.</li>
          <li><b>x</b>&nbsp;&ndash; это команда "rar.exe" для извлечения.</li>
          <li><b>-y</b>&nbsp;&ndash; это параметр "rar.exe": использовать ответ "Да" на все запросы.</li>
          <li><b>%AQ</b>&nbsp;&ndash; это имя архива. "Q" указывает DC, что необходимо взять имя в кавычки, если в нём есть пробелы.</li>
          <li><b>@</b>&nbsp;&ndash; это символ-индикатор "rar.exe" для указания файла списка.</li>
          <li><b>%LQA</b>&nbsp;&ndash; имя файла списка для обработки внешним архиватором, с помощью "A" указываем использовать кодировку ANSI.</li>
        </ul>
        <p>Итак, эта команда будет вызываться, когда мы пожелаем извлечь всё содержимое выделенного архива, только один файл из него и т.д.</p>
        <p>Когда мы "входим" в архив как в каталог и нажимаем <kbd>F3</kbd>, чтобы просмотреть содержимое файла внутри архива, действие "Извлечь" происходит в фоне, выбранный файл извлекается с использованием этого шаблона в системный каталог для временных файлов, а уже оттуда передаётся просмотрщику.</p>
        <p>Будет использовано при вызове внутренней команды <a href="cmds.html#cm_ExtractFiles">cm_ExtractFiles</a>.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="actionadding">4.7. Настройка действия "Добавить"</a></h2>
        <p>Это строка вызова внешнего архиватора для "упаковки" файла или всех выделенных файлов в архив, будем использовать те же <a href="#variables">переменные</a> и их <a href="#modifiers">модификаторы</a>.</p>
        <p>Продолжаем работу с "rar.exe", из документации мы знаем, что для создания архива или добавления файла или группы файлов в существующий архив используется команда "a".</p>
        <p>С "rar.exe" мы также можем указать в параметре список файлов для добавления.</p>
        <p>Воспользуемся предлагаемой Double Commander переменной <code>%L</code>, которая создаст текстовый файл с выделенными в активной панели файлами, и передадим его как параметр.</p>
        <p>Ниже представлена строка для создания или добавления в архив на примере "rar.exe":</p>
        <p class="figure"><img class="largeimage" title="Действие: Добавить" alt="Действие: Добавить" src="images/imgDC/archiveimg17.png" width="146" height="41"></p>
        <p>Описание этого примера:</p>
        <ul>
          <li><b>%P</b> будет заменено исполняемым файлом архиватора.</li>
          <li><b>a</b>&nbsp;&ndash; это команда "rar.exe" для создания архива или добавления в уже существующий архив.</li>
          <li><b>-y</b>&nbsp;&ndash; это параметр "rar.exe": использовать ответ "Да" на все запросы.</li>
          <li><b>%AQ</b>&nbsp;&ndash; это имя архива. "Q" указывает DC, что необходимо взять имя в кавычки, если в нём есть пробелы.</li>
          <li><b>@</b>&nbsp;&ndash; это символ-индикатор "rar.exe" для указания файла списка.</li>
          <li><b>%LQA</b>&nbsp;&ndash; имя файла списка для обработки внешним архиватором, с помощью "A" указываем использовать кодировку ANSI.</li>
        </ul>
        <p>Итак, эта команда будет вызвана, когда мы выберем файл или группу файлов и пожелаем упаковать с помощью внешнего архиватора "RAR".</p>
        <p>Будет использовано при вызове внутренней команды <a href="cmds.html#cm_PackFiles">cm_PackFiles</a>.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="actiondelete">4.8. Настройка действия "Удалить"</a></h2>
        <p>Некоторые форматы сжатых файлов поддерживают возможность удаления файла внутри архива.</p>
        <p>Если эта возможность поддерживается, мы можем в Double Commander настроить для этого вызов внешнего архиватора.</p>
        <p>То есть, когда эта команда будет использоваться: входим в архив, выбираем внутри него файл и удаляем его.</p>
        <p>Обратите внимание, что это действие находится на второй вкладке настроек внешнего архиватора.</p>
        <p>Продолжая наш пример с "rar.exe", вот как мы можем настроить это действие:</p>
        <p class="figure"><img class="largeimage" title="Действие: Удалить" alt="Действие: Удалить" src="images/imgDC/archiveimg18.png" width="148" height="41"></p>
        <p>Описание этого примера:</p>
        <ul>
          <li><b>%P</b> будет заменено исполняемым файлом архиватора.</li>
          <li><b>d</b>&nbsp;&ndash; это команда "rar.exe" для удаления файла в архиве.</li>
          <li><b>-y</b>&nbsp;&ndash; это параметр "rar.exe": использовать ответ "Да" на все запросы.</li>
          <li><b>%AQ</b>&nbsp;&ndash; это имя архива. "Q" указывает DC, что необходимо взять имя в кавычки, если в нём есть пробелы.</li>
          <li><b>@</b>&nbsp;&ndash; это символ-индикатор "rar.exe" для указания файла списка (да, мы можем удалить более одного файла за раз).</li>
          <li><b>%LQA</b>&nbsp;&ndash; имя файла списка для обработки внешним архиватором, с помощью "A" указываем использовать кодировку ANSI.</li>
        </ul>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="actiontest">4.9. Настройка действия "Проверить"</a></h2>
        <p>Некоторые архиваторы позволяют проверить целостность файла архива, чтобы убедиться, что в них нет ошибки, что ничего не повреждено.</p>
        <p>Если эта возможность поддерживается, мы можем в Double Commander настроить для этого вызов внешнего архиватора.</p>
        <p>Продолжая наш пример с "rar.exe", вот как мы можем настроить это действие:</p>
        <p class="figure"><img class="largeimage" title="Действие: Проверить" alt="Действие: Проверить" src="images/imgDC/archiveimg19.png" width="98" height="41"></p>
        <p>Описание этого примера:</p>
        <ul>
          <li><b>%P</b> будет заменено исполняемым файлом архиватора.</li>
          <li><b>t</b>&nbsp;&ndash; это команда "rar.exe" для проверки архива.</li>
          <li><b>-y</b>&nbsp;&ndash; это параметр "rar.exe": использовать ответ "Да" на все запросы.</li>
          <li><b>%AQ</b>&nbsp;&ndash; это имя архива. "Q" указывает DC, что необходимо взять имя в кавычки, если в нём есть пробелы.</li>
        </ul>
        <p>Будет использовано при вызове внутренней команды <a href="cmds.html#cm_TestArchive">cm_TestArchive</a>.</p>
        <p>Если ошибок нет, окно тестирования будет закрыто, в противном случае появится следующее сообщение:</p>
        <p class="figure"><img class="largeimage" title="Протестировать архив: сообщение об ошибке" alt="Протестировать архив: сообщение об ошибке" src="images/imgDC/archiveimg20.png" width="550" height="184"></p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="actionextractnpath">4.10. Настройка действия "Распаковать не учитывая пути"</a></h2>
        <p>Если архив содержит каталоги, то при вызове внутренней команды <a href="cmds.html#cm_ExtractFiles">cm_ExtractFiles</a> для распаковки по умолчанию архиватор будет воссоздавать структуру каталогов.</p>
        <p>Но иногда бывает необходимо извлечь все файлы без сохранения структуры каталогов и некоторые архиваторы поддерживают такую возможность.</p>
        <p>Для этого используется действие "Распаковать не учитывая пути".</p>
        <p>Продолжая наш пример с "rar.exe", вот как мы можем настроить это действие:</p>
        <p class="figure"><img class="largeimage" title="Действие: Распаковать не учитывая пути" alt="Действие: Распаковать не учитывая пути" src="images/imgDC/archiveimg24.png" width="218" height="41"></p>
        <p>Описание этого примера:</p>
        <ul>
          <li><b>%P</b> будет заменено исполняемым файлом архиватора.</li>
          <li><b>e</b>&nbsp;&ndash; это команда "rar.exe" для извлечения файлов без сохранения структуры каталогов.</li>
          <li><b>-y</b>&nbsp;&ndash; это параметр "rar.exe": использовать ответ "Да" на все запросы.</li>
          <li><b>%AQ</b>&nbsp;&ndash; это имя архива. "Q" указывает DC, что необходимо взять имя в кавычки, если в нём есть пробелы.</li>
          <li><b>@</b>&nbsp;&ndash; это символ-индикатор "rar.exe" для указания файла списка.</li>
          <li><b>%LQA</b>&nbsp;&ndash; имя файла списка для обработки внешним архиватором, с помощью "A" указываем использовать кодировку ANSI.</li>
        </ul>
        <p>Такой способ можно выбрать в диалоговом окне распаковки архива:</p>
        <p class="figure"><img class="largeimage" title="Учитывать подкаталоги" alt="Учитывать подкаталоги" src="images/imgDC/archiveimg23.png" width="464" height="266"></p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="actionselfextract">4.11. Настройка действия "Создать самораспаковывающийся архив"</a></h2>
        <p>Некоторые архиваторы могут создавать "самораспаковывающиеся" сжатые файлы (SFX-архивы).</p>
        <p>Это означает, что в результате мы получим исполняемый файл, при запуске которого будет извлечено его содержимое.</p>
        <p>Это полезно, когда хотим быть уверены, что у пользователей не будет проблем с распаковкой архива: ничего не нужно устанавливать, просто запустить и получить распакованные файлы!</p>
        <p>Как правило, это действие зачастую настраивается так же, как действие "Добавить", но с добавлением параметра, указывающего, что нужен самораспаковывающийся архив.</p>
        <p>Так обстоит дело, например, с "rar.exe". Вот как мы можем настроить это действие:</p>
        <p class="figure"><img class="largeimage" title="Действие: Создать самораспаковывающийся архив" alt="Действие: Создать самораспаковывающийся архив" src="images/imgDC/archiveimg21.png" width="248" height="41"></p>
        <p>Описание этого примера:</p>
        <ul>
          <li><b>%P</b> будет заменено исполняемым файлом архиватора.</li>
          <li><b>a</b>&nbsp;&ndash; это команда "rar.exe" для создания архива или добавления в уже существующий архив.</li>
          <li><b>-y</b>&nbsp;&ndash; это параметр "rar.exe": использовать ответ "Да" на все запросы.</li>
          <li><b>-sfx</b>&nbsp;&ndash; это параметр "rar.exe", указывающий, что результатом должен стать самораспаковывающийся архив.</li>
          <li><b>%AQ</b>&nbsp;&ndash; это имя архива. "Q" указывает DC, что необходимо взять имя в кавычки, если в нём есть пробелы.</li>
          <li><b>@</b>&nbsp;&ndash; это символ-индикатор "rar.exe" для указания файла списка.</li>
          <li><b>%LQA</b>&nbsp;&ndash; имя файла списка для обработки внешним архиватором, с помощью "A" указываем использовать кодировку ANSI.</li>
        </ul>
        <p>Самораспаковывающийся архив создаётся, как и обычный архив, с помощью внутренней команды <a href="cmds.html#cm_PackFiles">cm_PackFiles</a>, но в появившемся окне нужно отметить опцию "Самораспаковывающийся архив".</p>
        <p class="figure"><img class="largeimage" title="Самораспаковывающийся архив" alt="Самораспаковывающийся архив" src="images/imgDC/archiveimg22.png" width="540" height="297"></p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="configids">4.12. Использование ID</a></h2>
        <p>Мы можем настроить Double Commander таким образом, чтобы он игнорировал расширение файла и пытался определить сжатый файл по его содержимому, а затем вызывал описанные выше соответствующие команды получения списка и распаковки.</p>
        <p>Для этого мы будем использовать внутреннюю команду <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a>.</p>
        <p>Примером использования может быть открытие самораспаковывающегося EXE-файла и получение содержимого, не запуская его.</p>
        <p>Другим примером может быть просмотр содержимого архива, который сохраняется с иным, чем обычный архив, расширением файла, примером таких файлов могут быть, например, DOCX-файлы Microsoft Word, которые на самом деле представляют собой сжатые файлы ZIP.</p>
        <p>Мы можем настроить Double Commander для обнаружения сигнатуры выбранного файла (шаблона данных в определённом месте файла), чтобы он был распознан и передан соответствующему архиватору.</p>
        <p>Мы будем называть эти шаблоны "ID" и этот раздел посвящён их настройке.</p>
        <p>Для этого у нас есть три опции: ID, Смещение ID и Диапазон поиска ID.</p>
        <p>Мы укажем Double Commander, где нужно искать определённый ID для распознавания типа архива, а затем настроим команды, специфичные для этого типа архива.</p>
        <p>Начнем с простого примера. На следующем изображении показано начало архива 7-Zip в шестнадцатеричном виде:</p>
        <p class="figure"><img class="largeimage" title="Пример файла 7-Zip" alt="Пример файла 7-Zip" src="images/imgDC/archiveimg25.png" width="608" height="122"></p>
        <p>Посмотрев другие архивы 7-Zip, мы видим, что первые шесть байта&nbsp;&ndash; это всегда последовательность 0x37 0x7A 0xBC 0xAF 0x27 0x1C.</p>
        <p>Итак, извлечём из этого пользу: столкнувшись с файлом, который начинается с этой последовательности, Double Commander предположит, что этот файл является архивом 7-Zip.</p>
        <p>Настраиваем:</p>
        <p class="figure"><img class="largeimage" title="ID 7-Zip" alt="ID 7-Zip" src="images/imgDC/archiveimg26.png" width="130" height="121"></p>
        <p>Мы должны записать ID группами по два шестнадцатеричных числа, разделяя их пробелами.</p>
        <p>Смещение ID (необязательный)&nbsp;&ndash; это позиция ID в архиве. Если не указано, поиск ID будет идти с начала файла. Мы можем задать смещение со знаком "-" (минус): в этом случае поиск будет идти с конца файла. Специальное значение &lt;SeekID&gt; ограничивает поиск ID, если не найдено числовое значение смещения ID. Диапазоны поиска "0 .. размер файла" или "0 .. Диапазон поиска ID" (в зависимости от того, какое будет меньше). Значения могут быть указаны в десятеричной (12345) или шестнадцатеричной (0x3039) системе счисления. Отрицательные значения в шестнадцатеричном виде обозначаются как 0xFFFFFFFF (-1 в десятичном).</p>
        <p>Диапазон поиска ID (необязательный)&nbsp;&ndash; это число байт, в которых Double Commander будет искать ID, если задано &lt;SeekID&gt;. По умолчанию 1 МБ.</p>
        <p><b>Примечание:</b> Все вышеуказанные параметры могут иметь несколько значений, в таком случае можно перечислить их через запятую.</p>
        <p>В нашем примере с архивом 7-Zip будет достаточно указать ID и смещение ID (0, потому что в начале файла).</p>
        <p>Теперь, когда мы вызовем команду <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a>, Double Commander просканирует содержимое файла, найдёт последовательность "0x37 0x7A 0xBC 0xAF 0x27 0x1C" по смещению 0, и будет обрабатывать его как тип 7Z, с соответствующими командами и параметрами для получения списка, распаковки и т.д.</p>
        <p>В большинстве случаев нет необходимости изучать файлы в шестнадцатеричном представлении: сигнатуру файла можно найти в спецификации формата или использовать существующие списки, базы или утилиты (например, <a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D1%82%D1%83%D1%80_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2" target="_blank">эта страница Википедии</a> или <a href="https://freedesktop.org/wiki/Software/shared-mime-info/" target="_blank">база данных MIME от FreeDesktop.org</a>).</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="debug">4.13. Отладка</a></h2>
        <p>Описанных выше шагов обычно достаточно для использования внешнего архиватора, но на всякий случай у нас есть ещё пара опций:</p>
        <ul>
          <li><p><span class="italic">Показывать консольный вывод</span>&nbsp;&ndash; Если включено, Double Commander будет выводить (построчно) результат работы внешнего архиватора и парсера в окно протокола.</p></li>
          <li><p><span class="italic">Режим отладки</span>&nbsp;&ndash; Аналогично предыдущей опции, но также результат работы будет выводиться в отладочные сообщения Double Commander (смотрите описание <a href="commandline.html">--debug-log</a>). В этом случае временный файл со списком файлов (<code>%L</code> в нашем примере) не будет автоматически удаляться после завершения операции.</p></li>
        </ul>
        <p>Если отображение окна протокола отключено в <a href="configuration.html#ConfigLayout">настройках</a>, то оно будет показано принудительно и скрыто при закрытии Double Commander. Сообщения не будут сохраняться в файл протокола.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="other">4.14. Меню кнопки "Другое"</a></h2>
        <p>Это меню содержит несколько дополнительных функций:</p>
        <ul>
          <li><p><span class="italic">Автонастройка</span>&nbsp;&ndash; Double Commander проверит все исполняемые файлы архиваторов: если файл будет найден, то программа автоматически добавит его полный путь и включит архиватор, в противном случае архиватор будет отключен.</p></li>
          <li><p><span class="italic">Отменить изменения</span>&nbsp;&ndash; сбрасывает все несохранённые изменения настроек.</p></li>
          <li><p><span class="italic">Сортировать архиваторы</span>&nbsp;&ndash; сортирует список архиваторов по алфавиту.</p></li>
          <li><p><span class="italic">Запретить все</span> и <span class="italic">Разрешить все</span>&nbsp;&ndash; включают или отключают все архиваторы.</p></li>
          <li><p><span class="italic">Экспорт...</span> и <span class="italic">Импорт...</span>&nbsp;&ndash; позволяют экспортировать и импортировать настройки архиваторов (все архиваторы или часть из них).</p></li>
        </ul>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
      </div>

      <div>
        <h2><a name="openassociation">5. Открытие файла архива в ассоциированном приложении</a></h2>
        <p>По умолчанию файлы, расширения которых указаны в настройках WCX-плагинов и внешних архиваторов, открываются как папки. Для открытия их в ассоциированном приложении мы можем использовать пункт "Открыть" в <a href="help.html#cm_ContextMenu">контекстном меню</a> файла (но в этом случаю будут использоваться только системные файловые ассоциации) или мы можем добавить нужное действие в подменю "Команды".</p>
        <p>Чтобы использовать клавишу <kbd>Enter</kbd> или двойной щелчок мышью, мы должны изменить настройки.</p>
        <p>Мы можем просто удалить расширение из настроек, но в этом случае станут недоступны команды <a href="cmds.html#cm_OpenArchive">cm_OpenArchive</a> и <a href="cmds.html#cm_ExtractFiles">cm_ExtractFiles</a>. Другой способ:</p>
        <ul>
          <li><p>Если используется WCX-плагин, то мы можем открыть настройки плагина, выбрать расширение и включить флаг "Показывать как нормальные файлы (скрывать значок архива)".</p></li>
          <li><p>Если для распаковки файлов используется внешний архиватор, то мы можем заполнить поля для использования ID и не указывать расширение файлов.</p></li>
        </ul>
        <p>Для таких файлов Double Commander будет использовать ассоциированный значок вместо общего значка архива.</p>
        <p class="navback"><a href="#topofpage">(наверх)</a></p>
        <br>
      </div>
     </div>
    <div class="footer"><div class="nav"><a title="Начало" href="index.html">Начало</a> | <a title="Предыдущая страница" href="directoryhotlist.html">Пред.</a> | <a title="Следующая страница" href="toolbar.html">След.</a></div></div>
    <div class="checker">
      <a href="https://validator.w3.org/check?uri=referer" target="_blank"><img src="https://www.w3.org/Icons/valid-html40" alt="Valid HTML 4.0 Transitional" height="31" width="88"></a>
      <a href="https://jigsaw.w3.org/css-validator/check/referer" target="_blank"><img style="border:0;width:88px;height:31px" src="https://jigsaw.w3.org/css-validator/images/vcss" alt="CSS Valid!"></a>
    </div>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
  </body>
</html>