Описание команды


extxs

Получение информации из файлов по шаблону.

extxs=%L,%WL||cliplist||LISTF<>||PS<>||FOLDC<>||FOLDM<>||LISTC<>||FLST<>||$var_aa||$GLOBALNAME||Name, ||begin<>, ||test<>

Параметры:

1-й обязательный параметр. Может иметь несколько вариантов:
%L,
%WL
Список выделенных текстовых файлов.
Также может использоваться путь к файлу списка полных путей файлов %P%N. см. Дополнение №7 или с:\List.txt
cliplistСписок полных путей объектов из буфера обмена.
LISTF<>Список заданных объектов. см. Дополнение №22.
PS<>Список объектов каталога. см. Дополнение №22.
FOLDC<>Список объектов содержимого каталогов. см. Дополнение №22.
FOLDM<>Список выделенных объектов и всех объектов в подпапках. см. Дополнение №22.
LISTC<>Список объектов из выделенных без дубликатов. см. Дополнение №22.
FLST<>Смешанные списки объектов по заданному списку. см. Дополнение №22.
$var_aaМассив. Переменная $var_a... - массив путей, созданный в команде exect.
$GLOBALNAMEМассив. Список путей глобальной переменной см. Дополнение №23.
2-й обязательный параметр.
NameИмя шаблона. Позволяет получать информацию из шаблона, прописанного в секции [Extract_Name].
  Описание
Ключи секции:
  0 - [необязательный] названия получаемой информации, перечисленные через разделитель |
    вносится построчно в 0-ю колонку
  Остальные ключи имеют синтаксис Number=Mode||Condition , где:
    Number - число: номер строки в массиве, в которую записывается информация.
    Mode - режим получения информации:
      0||RegExp - возвращает 0 - если совпадения не найдено, 1 - если найдено. RegExp - регулярное выражение.

      1||RegExp - возвращает 1-е совпадение заданного регулярного выражения RegExp, если не найдено возвращается пустая строка.

      2||RegExp||Delim - возвращает все совпадения заданного регулярного выражения RegExp, если не найдено возвращается пустая строка.
          Delim - [необязательный] разделитель (по умолчанию перенос строки @CRLF).

      3||RegExp||Replace||Count - поиск и замена с регулярными выражениями, возвращает преобразованный текст:
          RegExp - регулярное выражение поиска.
          Replace - строка замены регулярного выражения.
          Count - [необязательный] количество замен в строке. По умолчанию 0 - выполняет замену всех найденных образцов.

      4||Search||Replace||Count||Flag - поиск и замена, возвращает преобразованный текст:
          Search - строка поиска.
          Replace - строка замены.
          Count - [необязательный] количество выполняемых замен (по умолчанию 0 - выполнить замену всех найденных строк).
            Используется отрицательное число, чтобы выполнить замену справа.
          Flag - [необязательный] флаг установки чувствительности к регистру.
            0 - не учитывать регистр (по умолчанию); 1 - учитывать регистр ; 2 - не учитывать регистр, используется быстрое сравнение.

      5||Parameters - преобразование с помощью шаблонов.
          Parameters - это один или серия параметров таких же как и в Дополнении №15, в которых убран тег formt<...>

      6||Parameters - преобразование с помощью параметров.
          Parameters - это один или серия параметров таких же как и в Дополнении №24 (Разделитель между параметрами ;; )

      7||Parameters - преобразование с помощью параметров.
          Parameters - это один или серия параметров таких же как и в Дополнении №10, в которых убран тег <info=...>

      8||String - вставка строки String

Пример записи:

[Extract_FB2]
0=Имя|Фамилия|Жанр|Название|Язык|Серия|Аннотация|Версия
1=1||<author>.*<first-name>([^<>]+)</first-name>.*</author>
2=1||<author>.*<last-name>([^<>]+)</last-name>.*</author>
3=2||<genre>([^<>]+)</genre>||,
4=1||<book-title>([^<>]+)</book-title>
5=1||<lang>([^<>]+)</lang>
6=1||<sequence name=["']([^<>]+)["']/>
7=1||(?s)<annotation><p>([^<>]+)</p>.*</annotation>
8=1||<version>(.+)</version>


В версии 21.9 добавлены теги :INFOITEM1:, :INFOITEM2:, ..., :INFOITEMN:,
позволяющие задействовать уже полученную информацию в других ключах, где:
  :INFOITEM1: - заменяется информацией 1-го ключа.
  :INFOITEM2: - заменяется информацией 2-го ключа.
  :INFOITEMN: - заменяется информацией N-го ключа.

В версии 22.8 добавлен тег :FILE: - заменяется полным путём файла.

Пример записи:

[Extract_Example1]
1=8||привет
2=8||пока
3=8||:INFOITEM1:+:INFOITEM2:
4=7||o25:FILE://

Дополнительные параметры:
begin<>Начальная колонка массива. Параметр begin<Number> , где Number:
  0 - не выводить начальную информацию в нулевую колонку.
  1 - выводить начальную информацию в нулевую колонку (по умолчанию).
test<>Проверка прохождения объекта под определённые условия. см. Дополнение №16.

Примечания:

Команда имеет возможность передавать другим командам информацию через именные глобальные переменные. см. Дополнение №23

Имя переменнойОписание
GLOBALEXTXSмассив выходных данных - одномерный 1D или двумерный 2D массив с информацией:
  если 2D массив, то задействуются дополнительные 1D массивы:
    GLOBALEXTXS0 - одномерный массив 0-й колонки.
    GLOBALEXTXS1 - одномерный массив 1-й колонки.
    GLOBALEXTXS2 - одномерный массив 2-й колонки.
    ...
    GLOBALEXTXSN - одномерный массив N-й колонки.

  GLOBALEXTXS_ - в 1-й ячейке содержит:
    если 2D массив, то номер последней колонки
    если 1D массив, то -1
GLOBALEXTXS_0массив входных данных (список исходных путей объектов)
GLOBALEXTXS_1массив файлов (список путей файлов из которых информация была извлечена)
GLOBALEXTXS_2массив объектов (список путей объектов из которых информация не была извлечена)

См. также:

arh7f, arh7z, device, extxt, funau, funjs, funvb, infos, inplg, nfsis, tests, versn

Примеры:
 Как создать кнопку?

extxs=%WL||FB2 GLOBALEXTXS_<a> GLOBALEXTXS<a> GLOBALEXTXS0<a> GLOBALEXTXS1<a> GLOBALEXTXS_0<a> GLOBALEXTXS_1<a> GLOBALEXTXS_2<a> ;; получить информацию для выделенных FB2 файлов во всех глобальных переменных команды

extxs=%WL||FB2 GLOBALEXTXS<a> ;; получить информацию для выделенных FB2 файлов

extxs=%WL||FB2||begin<0> GLOBALEXTXS<a> ;; получить информацию для выделенных FB2 файлов; не добавлять названия в 0-ю колонку

extxs=%WL||FB2||test<1e!!fb2> GLOBALEXTXS<a> ;; получить информацию для выделенных FB2 файлов (проверять попадания в список fb2)

extxs=%WL||InfoFile GLOBALEXTXS<a> ;; пример получения заданной информации выделенных файлов


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru