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


extxt

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

extxt=File||Name, ||...

Параметры:

1-й обязательный параметр.
FileПуть к файлу. Полный путь к файлу, возможные варианты:
  • Абсолютный путь c:\test.txt
  • Путь через параметры %P%N см. Дополнение №7.
  • Относительный путь %COMMANDER_PATH%\test.txt
  • Относительный путь $f06\test.txt см. Дополнение №8.
  • Путь возвращаемый параметром <xfolder> см. Дополнение №11.
  • Путь возвращаемый глобальными переменными см. Дополнение №23.
  • Путь возвращаемый параметром [tc] см. Дополнение №12.
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://

Дополнительные параметры:
...Аналог. Остальные параметры те же, что и у команды extxs.

Примечания:

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

Имя переменнойОписание
GLOBALEXTXTмассив выходных данных - одномерный 1D или двумерный 2D массив с информацией:
  если 2D массив, то задействуются дополнительные 1D массивы:
    GLOBALEXTXT0 - одномерный массив 0-й колонки.
    GLOBALEXTXT1 - одномерный массив 1-й колонки.
    GLOBALEXTXT2 - одномерный массив 2-й колонки.
    ...
    GLOBALEXTXTN - одномерный массив N-й колонки.

  GLOBALEXTXT_ - в 1-й ячейке содержит:
    если 2D массив, то номер последней колонки
    если 1D массив, то -1
GLOBALEXTXT_0массив входных данных (в первой ячейке путь исходного файла)
GLOBALEXTXT_1массив файлов (в первой ячейке путь файла с извлечённой информацией)
GLOBALEXTXT_2массив объектов (в первой ячейке путь файла из которого информация не была извлечена)

Аналог команды для одного объекта extxt

См. также:

device, extxs, funau, funjs, funvb, infos, inplg, nfsis, versn

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

bends=#-1\\8 extxt=GLOBALBENDS<t1>||KinoPoisk GLOBALEXTXT<a> ;; получить информацию о фильме по ссылке из буфера обмена с сайта https://www.kinopoisk.ru

extxt=#||Example1 GLOBALEXTXT<a> ;; пример получения информации с помощью тегов :INFOITEM1:

extxt=%P%N||FB2 GLOBALEXTXT_<a> GLOBALEXTXT<a> GLOBALEXTXT0<a> GLOBALEXTXT1<a> GLOBALEXTXT_0<a> GLOBALEXTXT_1<a> GLOBALEXTXT_2<a> ;; получить информацию из FB2 файла под курсором во всех глобальных переменных команды

extxt=%P%N||FB2 GLOBALEXTXT<a> ;; получить информацию из FB2 файла под курсором

extxt=%P%N||FB2||begin<0> GLOBALEXTXT<a> ;; получить информацию из FB2 файла под курсором; не добавлять названия в 0-ю колонку

extxt=%P%N||InfoFile GLOBALEXTXT<a> ;; пример получения заданной информации из файла под курсором

extxt=%P%N||KinoPoisk GLOBALEXTXT<a> ;; получить информацию о фильме из html файла под курсором (сохранённая страница фильма с сайта https://www.kinopoisk.ru)


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