Дополнение №24


Дополнение к командам, использующих преобразование строки.



Параметры могут использоваться в любом порядке несколько раз.
  • Разделитель между параметрами ||
  • В специальных параметрах clip<> и convert<> разделитель ;;
  • В функции _StringConv разделитель по умолчанию ¤¤, но может быть и задан в 3-м параметре.

Общие теги для всех параметров:

cliptext - в любом месте тег cliptext будет заменён содержимым буфера обмена.
:NUMBER: - в любом месте тег :NUMBER: будет заменён последовательным номером при обработке списков.
:LISTNUM: - в любом месте тег :LISTNUM: будет заменён последовательным номером при обработке списков.
    (теги :NUMBER: и :LISTNUM: подключены не во всех командах... сообщайте - добавлю).
:BEGIN: - в любом месте тег :BEGIN: будет заменён начальной строкой (строкой до преобразования параметров).
:: - в любом месте тег :: будет заменён путём файла, если преобразуется содержимое файла.
enum[] - буквенный или числовой счётчик будет заменён значением, описание
@@ - если после первых спец символов (^^, $$, ## и других) прописано @@ , то последующая строка будет сначала обработана параметром info
path<> - если передается путь и нужно получить часть пути:
  Описание
Параметр path<Number|LongShort|Conversion|Max>, где:
Number - номер части пути. см. Дополнение №9.
LongShort
  1 - перевод пути в короткое имя.
  0 - перевод пути в длинное имя.
Conversion
  1 - перевод пути из абсолютного в относительный.
  2 - удаляется относительная часть пути.
  5 - перевод пути из относительного в абсолютный (игнорируются повторяющиеся знаки %, относящиеся к переменным окружения).
  7 - перевод пути из абсолютного в относительный, относительно внутренних переменных утилиты.
Max - число, на которое обрезается имя при Number = 4,5,6,7.

В версии 10.6 появилась возможность использовать ряд функций и макросов Autoit :
Chr() и ChrW() заменяются соответствующими символами.
ClipGet() заменяется содержимым буфера обмена.
Number() позволяет производить математические действия.
StringLeft() позволяет получать указанное число символов строки слева.
StringRight() позволяет получать указанное число символов строки справа.
StringMid() позволяет получать часть символов строки.
StringLen() позволяет получать количество символов строки.
@AutoItPID, @YEAR, @YDAY, @WDAY, @SEC, @MSEC, @MON, @MIN, @MDAY, @HOUR.

Так же могут использоваться данные глобальных переменных:
  GLOBALNAME<:NUMBER:>
  GLOBALNAME<:LISTNUM:>


!! == Поиск и замена && Поиск и замена с регулярным выражением
  &* Поиск и замена с регулярными выражениями по списку
&# Поиск с регулярным выражением и замена по списку &? Поиск с регулярным выражением
>> Без преобразования и без вставки ?# Поиск по нескольким регулярным выражениям
^^ Вставка в начало $$ Вставка в конец
?? Изменение регистра символов @@ Транслитерация
## Замещение #? Замещение с условием
#A Вставка в начало (не для всех команд) ?A Возвращает число символов строки слева
#B Преобразует строку в бинарные данные ?B Удаляет/Добавляет строку к строке с условиями
#C Шифрование строки ?C Преобразует строку Unicode в строку
#D Декодирование строки b64 xxe uue ?D Преобразует Unicode строку в строку
#E Кодирование строки b64 xxe uue ?E Меняет местами заданные строки
#F Расшифровывание текста построчно ?F Преобразование с помощью шаблонов
#G Удаление пробельных символов в строке ?G Перемещает строку в заданную позицию
#H Контрольная сумма строки ?H Группировка и разгруппировка строки номеров
#i Получение данных по списку ?i Получение данных
#J Xor кодирование/декодирование строки ?J Перемещает строку с заменой
#K Дублирование строки ?K Дублирование строк
#L Извлечение строк ?L Удаляет количество символов строки слева
#M Шифрование текста построчно ?M Извлекает часть символов в строке
#N Замена на счётчик ?N Удаляет дубликаты между разделителем
#O Преобразование строки относительно её длины ?O Считывание строки из секции [Lines]
#P Перевод относительного пути в абсолютный ?P Перемешивает строки случайным образом
#Q Кодирование строки в Hex строку ?Q Поиск и замена из файла
#R Расшифровывание строки ?R Удаляет количество символов строки справа
#S Пользовательские шаблоны ?S Замена символов ASCII-кодами
#T Преобразовывает бинарные данные в строку ?T Преобразование заданных строк
#U Декодирование Hex строки ?U Замена функций Autoit значениями
#V Реверс строки ?V Выполняет выражение Autoit
#W Разжатие строки бинарных данных ?W Замена символов юникод-кодами
#X Сжатие строки бинарных данных ?X Получение содержимого страницы интернета
#Y Получение из строки заданных символов ?Y Преобразование с помощью функций js, vbs, au3
#Z Вставка в конец (не для всех команд) ?Z Возвращает число символов строки справа
#0 Преобразует кириллическую кодировку в ANSI ?0 Получение данных из массива
#1 Преобразует кодировку UTF8 в ANSI ?1 Получение данных из файла
#2 Преобразует кодировку KOI8 в ANSI ?2 Получение данных из секции ini файла
#3 Преобразует кодировку 866 в ANSI ?3 Получение данных из ключа ini файла
#4 Преобразует кодировку ISO8859 в ANSI ?4 Получение данных из строки
#5 Преобразует строку алгоритмом ROT13 ?5 Получение кода таблиц(ы) htm
#6 Преобразует строку алгоритмом ROT47 ?6 Онлайн перевод
#7 Ёфикатор ?7 Преобразование с помощью шаблонов. Разделитель.


Параметр Описание
Search!!Replace!!N!!R

==Search!!Replace!!N!!R
Поиск и замена. Search - "что искать" и Replace - "чем заменять" разделяются !!
Для поиска или замены фразы из файла используется подпараметр [rfile=Path] или <rfile=Path>, где Path - полный путь к файлу.
N - [необязательный] Количество выполняемых замен. Используется отрицательное число, чтобы выполнить замену справа.
R - [необязательный] Флаг установки чувствительности к регистру. 0 - не учитывать регистр (по умолчанию); 1 - учитывать регистр ; 2 - не учитывать регистр, используется основное / быстрое сравнение; 0 = выполнить замену всех найденных строк (по умолчанию)
Возможно использование параметра rndm[Number|...] см. Дополнение №30.
Если фраза поиска или замены начинается с #P, то относительный путь (последующая строка) будет переведён в абсолютный.
Если фраза поиска или замены начинается с #PS, то относительный путь (последующая строка) будет переведён в абсолютный, в котором слеш заменяется двойным.
т.к. в Search (поиск) в начало могут попасть специальные символы, которые используются в утилите (##, ??, **, $$, и.т.д), то в таких случаях перед строкой добавляется ==
&&Pattern!!Replace!!NПоиск и замена с регулярным выражением. см. Дополнение №2
Если фраза вначале или после разделителя || начинается с &&, то последующая строка параметра разделённая символами !! означает поиск и замену с регулярными выражениями, где:
  Pattern - строка регулярного выражения, образец для поиска (шаблон)
  Replace - строка замены регулярного выражения. Чтобы вставить текст группы используйте, \0 - \9 (или $0 - $9) как обратную ссылку.
  N - [необязательный] количество замен в строке. По умолчанию 0 - выполняет замену всех найденных образцов.
&?Pattern!!Flag!!N!!Delim Поиск с регулярным выражением. см. Дополнение №2
  Pattern - строка регулярного выражения, образец для поиска (шаблон).
    Если pattern начинается с ??Key то регулярное выражение берётся TCIMG.ini из секции [FormatUser] из ключа Key
  Flag - [необязательный] режим поиска:
    0 - возвращается 1, если совпадение найдено или 0, если не найдено.
    1 - поиск до первого совпадения, возвращается полное совпадение с шаблоном.
    3 - возвращаются все совпадения, разделённые переносом строки (по умолчанию).
   Для получения заданных совпадений, прописываются номера или диапазоны номеров через запятую:
    aK1,K2,...,N1:M1,...,N2:M2 - найти совпадения заданных номеров.
    bK1,K2,...,N1:M1,...,N2:M2 - найти совпадения, кроме заданных номеров.
      • a и b обязательные символы, которые прописываются в начале.
      • K1,K2,... - числа; N1:M1 - диапазоны чисел.
      • числа и диапазоны могут располагаться в любом порядке (для a - это будет определять последовательность полученных совпадений).
      • при отрицательных числах отсчёт ведётся с конца.
  N - [необязательный] позиция строки, начиная с которой будут искаться совпадения (по умолчанию 1).
  Delim - [необязательный] разделитель (символ или строка) между найденными совпадениями (по умолчанию перенос строки).
При Flag=1 и Flag=3, если ничего не найдено, возвращается пустая строка.
?#Search1¤...¤SearchN Поиск по нескольким регулярным выражениям и последовательное объединение полученных данных. см. Дополнение №2
Search - может быть 2-х вариантов:
  1. Pattern!!Flag!!N!!Delim
    Pattern - строка регулярного выражения, образец для поиска (шаблон).
    Flag режим поиска:
      0 - возвращается 1, если совпадение найдено или 0, если не найдено.
      1 - поиск до первого совпадения, возвращается полное совпадение с шаблоном.
      3 - возвращаются все совпадения, разделённые переносом строки.
    N - [необязательный] позиция строки, начиная с которой будут искаться совпадения (по умолчанию 1).
    Delim - [необязательный] разделитель (символ или строка) между найденными совпадениями (по умолчанию перенос строки).
При Flag=1 и Flag=3, если ничего не найдено, возвращается пустая строка.

  2. Если в Search нет разделителя !!, то строка является вставкой между данными предыдущего и последующего поиска.
&#Pattern!!List!!Count Поиск с регулярным выражением и последовательная замена по списку. см. Дополнение №2
  Pattern - строка регулярного выражения, образец для поиска (шаблон).
    Если pattern начинается с ??Key то регулярное выражение берётся TCIMG.ini из секции [FormatUser] из ключа Key
  List - список строк для поиска, возможны варианты:
    String - строка фраз для замены, прописанных через разделитель |.
    File - путь к файлу со списком строк для замены.
    $GLOBALNAME - список строк из глобального массива.
  Count - [необязательный]
    0 - замены производятся по кругу строк из списка List (по умолчанию).
    1 - замены производятся пока не закончатся строки в списке List.
    N>1 - производятся N последовательных замен.
&*Parameters Поиск и замена с регулярными выражениями по списку. см. Дополнение №2
Parameters - FilePath(|Section) , где:

  FilePath - путь к файлу списка (обязательный параметр, остальные необязательные).
    В списке должны быть прописаны пары поиска и замены, разделённые "||" .
    Каждая пара с новой строки.
    В файле могут использоваться комментарии, но в них НЕ должно быть двух подряд вертикальных черт (труб).
    Если замена не прописана, то происходит удаление строки поиска.
    В замене можно использовать теги "@CRLF", "@CR", "@LF", "@TAB" означающие переносы строки и табуляцию.
  $GLOBALNAME2D - может использоваться для передачи данных 2D массив из 2-х колонок, в котором:
    в 0-й колонке в ячейках регулярное выражение для поиска.
    в 1-й колонке в соответствующих ячейках данные для замены.
Пример записи:

найти||заменить
; правильный комментарий
\d+||$1xx
; НЕПРАВИЛЬНЫЙ || комментарий
(?i)[a-z]+||
.+||$0@CRLFline

  Section - [необязательный] если в файле пары прописаны в секции, то указывается имя секции (в ином случае прописывается символ #) (по умолчанию без секции).
^^BeginLineВставка в начало. Если фраза вначале или после разделителя || начинается с ^^, то последующая строка параметра будет вставлена в начало.
$$EndLineВставка в конец. Если фраза вначале или после разделителя || начинается с $$, то последующая строка параметра будет вставлена в конец.
??N(Pattern!!Replace)Изменение регистра символов. Если фраза вначале или после разделителя || начинается с ??, то последующая цифра будет означать:
  1 - перевести символы во "все строчные".
  2 - во "ВСЕ ЗАГЛАВНЫЕ".
  3 - "Как в предложении".
  7 - "Как в предложении" (обрабатывается построчно).
  4 - "Начало Слов С Заглавной" (обрабатывается построчно).
  8 - "Начало Слов С Заглавной (Перед *Любым #Символом)" (обрабатывается построчно).
  5 - "Инвертировать регистр символов".
  6 - оставить как есть. Указывается при изменение регистра в других параметрах.
 11 - перевести символы в верхний и нижний регистр случайным образом.
 12 - перевести символы в верхний и нижний регистр чередованием.
Для того, чтобы произвести данное действие над частью строки, используется регулярное выражение идущее после цифры, где:
  Pattern - строка регулярных выражений, образец для поиска (шаблон)
  Replace - строка замены регулярного выражения. Чтобы вставить текст группы используйте, \0 - \9 (или $0 - $9) как обратную ссылку.
см. Дополнение №2.

Если в строке отсутствует !!Replace , то будет произведён поиск всех фраз по шаблону Pattern и изменён их регистр относительно первого параметра ??N
@@Translit(!!1)Транслитерация. Если фраза вначале или после разделителя || начинается с @@, то последующая строка параметра будет означать ИМЯ шаблона транслита.
В текущей строке заданные символы (фразы) шаблона, прописанные в ключе Source_Name заменяются соответствующими символами (фразами), прописанными в ключе Target_Name
Шаблоны настраиваются в секции [Translit] в TCIMG.ini.

В некоторых шаблонах, чтобы избежать (пересекающихся с шаблоном) ошибочных замен, необходима двойная обработка, когда искомые фразы заменяются специальным набором, а затем соответствующими заменами.
Для двойной обработки необходимо прописать к имени шаблона !!1
##FullReplaceЗамещение. Если фраза вначале или после разделителя || начинается с символов ##, то последующей строкой FullReplace параметра будет замещена существующая строка.
#?FullReplaceЗамещение с условием. Если фраза вначале или после разделителя || начинается с символов #?, то последующей строкой FullReplace параметра будет замещена существующая строка, если FullReplace не пустая строка.
#LString(|Mode)

#L#String(~Mode)

#L@String(~Mode)
Извлечение строк. Если фраза вначале или после разделителя || начинается с #L, то последующая строка String будет означать номер или список номеров извлекаемых строк, может иметь несколько вариантов:

1) #LString(|Mode)
  String - получение строк заданных номеров
  N - номер строки.
  N1,N2,...NN - список номеров, прописанных через запятую
  N:M - диапазон строк. (M:N - обратный диапазон)
  N:M,N1:M1...NN,MM - список номеров диапазонов (прямых и обратных).
При отрицательных значениях строки извлекаются относительно последней строки.

2) #L#String(~Mode)
  String - получение строк кроме заданных номеров
  принцип такой же как описан в варианте 1.

3) #L@String(~Mode)   String - получение строк чередующихся номеров, где String:
  @Start|End|Step|InArow
      Start - минимальное значение диапазона.
      End - максимальное значение диапазона (при -1 все строки до конца).
      Step - шаг чередования (по умолчанию 1).
      InArow - количество подряд номеров (по умолчанию 1).

Mode [необязательный] - удаление пустых строк:
  0 - не удалять пустые строки (по умолчанию)
  1 - удалять пустые строки перед извлечением строк
  2 - удалять пустые строки после извлечения строк


При #L0 возвращается 0 так как нулевой строки не существует.
#GNumberУдаление пробельных символов в строке. Если фраза вначале или после разделителя || начинается с #G, то последующий номер Number будет означать режим удаления пробелов в строке:
Number может быть суммой следующих флагов:
  1 - удаляет пробельные символы в начале строки.
  2 - удаляет пробельные символы в конце строки.
  4 - удаляет повтор (или многократный повтор) пробельных символов в строке.
  8 - удаляет все пробельные символы (не требуется суммировать флаги)
Пробельные символы включают в себя Chr(9), Chr(10), Chr(11), Chr(12), Chr(13), Chr(32), которые являются - табуляция, перевод строки, вертикальная табуляция, перевод страницы, возврат каретки и обычный пробел соответственно. А также символ Chr(0).
#V
#VS
#VW
Реверс строки. Если фраза вначале или после разделителя || начинается с #V, то в текущей строке будет произведено изменение порядка символов на обратный.
#VS - построчный реверс (т.е. каждая строка обрабатывается отдельно).
#VW - пословный реверс (т.е. каждое слово обрабатывается отдельно).
#KCount~Delim!!String
#KMin:Max~Delim!!String
Дублирование строки. Если фраза вначале или после разделителя || начинается с #K, то заданная строка String будет размножена Count раз.

Параметр #KCount~Delim1~Mode~Delim2!!String
  Count - число: количество дубликатов.
    - могут использоваться математические действия.
    - может быть случайным числом из диапазона Min:Max, Min - минимальное число, Max - максимальное.
  Delim1 - [необязательный] разделитель между дубликатами строк.
    - по умолчанию -1 разделителя нет.
  Mode - режим:
    0 - заменяется текущая строка (по умолчанию).
    1 - вставляется в конец текущей строки через разделитель Delim2.
    2 - вставляется в начало текущей строки через разделитель Delim2.
  Delim2 - [необязательный] разделитель в режиме Mode=1 и Mode=2 (по умолчанию разделителя нет).

    - Если String не указан, то дублируется текущая строка.
    - В Delim1 и Delim2 могут использоваться функции Autoit.
  Так же может быть задействована структура, позволяющая вставлять счётчик при дублировании строки:
  #KCount|Symbol|Begin|Step!!String
  #KMin:Max|Symbol|Begin|Step!!String
    Symbol - символ или строка, которая будет заменена счётчиком.
    Begin - начальное число счётчика.
    Step - шаг счётчика.
?KCountV|CountG|DelimДублирование строк. Если фраза вначале или после разделителя || начинается с ?K, то каждая строка будет размножена.
  CountV - количество получаемых строк каждой строки.
    (отсчёт с 2-х, при 1 дублирования не происходит).
  CountG - [необязательный] количество получаемых строк каждой строки горизонтально.
    (отсчёт с 2-х, при 1 дублирования не происходит).
  Delim - [необязательный] разделитель между горизонтальными дубликатами строк (по умолчанию разделителя нет).

  - В CountV и CountG могут использоваться математические действия.
  - В Delim могут использоваться функции Autoit.
?FParametersПреобразование с помощью шаблонов.
  Если фраза вначале или после разделителя || начинается с ?F, то в последующей строке параметра Parameters прописываются имена шаблонов для преобразования аналогично параметру formt<>, см. Дополнение №15
#SParametersПреобразование с помощью шаблонов.
  Если фраза вначале или после разделителя || начинается с #S, то в последующей строке параметра Parameters прописываются имена шаблонов для преобразования аналогично параметру formt<>, см. Дополнение №15
  Отличается от параметра ?F тем, что работает при использовании параметра [double] в командах renms, copys, moves при переименовании однотипных имён (к примеру при увеличении чисел в имени).
?7!!Delim!!ParametersПреобразование строки с помощью шаблонов. Разделитель.
  Delim - разделитель (символ или строка).
  Parameters - имена шаблонов для преобразования аналогично параметру formt<>, см. Дополнение №15

Заданный разделитель в строке заменяется на перенос строки и данные передаются в параметр formt<>.
После преобразования перенос заменяется на заданный разделитель.
#NSearch!!EnumЗамена на счётчик. Если фраза вначале или после разделителя || начинается с #N, то последующая строка параметра будет означать замену на отдельный счётчик каждой найденной подстроки Search!!Enum!!Direction!!Registr, где:
  Search - "что искать"
  Enum - строка "чем заменять", в которую в необходимом месте включается счётчик формата
              tnum[Begin|Step|Numbers]
              enum[Letter|Step|Numbers]
        или rndm[Number|Length] см. описание ниже
  необязательные параметры:
  Direction - направление замены:
    1 - справа (по умолчанию)
   -1 - слева
  Registr - чувствительности к регистру:
    0 - не учитывать регистр (по умолчанию)
    1 - учитывать
#ECODEDКодирование строки (текстовый формат). Если фраза вначале или после разделителя || начинается с #E, то последующая строка CODED будет означать метод кодировки:

МетодОписание
b64кодирование MIME Base64.
b64-кодирование MIME Base64, убрав переносы строк.
b64=построчное кодирование MIME Base64.
b64+ кодирование MIME Base64 с добавлением "оглавления"
b64+|Path|R, где:
  Path - [необязательный] путь или имя файла для создания "оглавления".
    по умолчанию 'test.txt'.
  R - [необязательный] изменение регистра символов имени (по умолчанию не менять):
    1 - перевести символы во "все строчные"; 2 - во "ВСЕ ЗАГЛАВНЫЕ".
xxeкодирование XXEncode.
xxe~кодирование XXEncode, удалив "оглавление".
xxe-кодирование XXEncode, удалив "оглавление" и переносы строк.
xxe=кодировать каждую строку XXEncode.
xxe+ кодирование XXEncode с добавлением "оглавления"
xxe+|Path|R, где:
  Path - [необязательный] путь или имя файла для создания "оглавления".
    по умолчанию 'test.txt'.
  R - [необязательный] изменение регистра символов имени (по умолчанию не менять):
    1 - перевести символы во "все строчные"; 2 - во "ВСЕ ЗАГЛАВНЫЕ".
uueкодирование UUEncode.
uue~кодирование UUEncode, удалив "оглавление".
uue- кодирование UUEncode, удалив "оглавление" и переносы строк.
uue=кодировать каждую строку UUEncode.
uue+ кодирование UUEncode с добавлением "оглавления"
uue+|Path|R, где:
  Path - [необязательный] путь или имя файла для создания "оглавления".
    по умолчанию 'test.txt'.
  R - [необязательный] изменение регистра символов имени (по умолчанию не менять):
    1 - перевести символы во "все строчные"; 2 - во "ВСЕ ЗАГЛАВНЫЕ".
b32кодирование Base32.
b32=построчное кодирование Base32.
zb32кодирование zBase32.
zb32=построчное кодирование zBase32.
сb32кодирование Base32 Crockford.
сb32=построчное кодирование Base32 Crockford.
hb32кодирование Base32hex (RFC 4648).
hb32=построчное кодирование Base32hex (RFC 4648).
gb32кодирование Base32 Geohash.
gb32=построчное кодирование Base32 Geohash.
b91кодирование Base91.
b91=построчное кодирование Base91.
b128кодирование Base128.
b128=построчное кодирование Base128.
#DCODEDДекодирование строки (текстовый формат). Если фраза вначале или после разделителя || начинается с #D, то последующая строка CODED будет означать метод декодировки:

МетодОписание
b64декодирование MIME Base64.
b64=построчное декодирование MIME Base64.
xxeдекодирование XXEncode.
xxe=построчное декодирование XXEncode.
uueдекодирование UUEncode.
uue=построчное декодирование UUEncode.
b32декодирование Base32.
b32=построчное декодирование Base32.
zb32декодирование zBase32.
zb32=построчное декодирование zBase32.
сb32декодирование Base32 Crockford.
сb32=построчное декодирование Base32 Crockford.
hb32декодирование Base32hex (RFC 4648).
hb32=построчное декодирование Base32hex (RFC 4648).
gb32декодирование Base32 Geohash.
gb32=построчное декодирование Base32 Geohash.
b91декодирование Base91.
b91=построчное декодирование Base91.
b128декодирование Base128.
b128=построчное декодирование Base128.
#HHASH|RG|LN Контрольная сумма строки (текстовый формат). Если фраза вначале или после разделителя || начинается с #H, то последующая строка HASH будет означать метод возвращения контрольной суммы
  1-й параметр HASH - метод, поддерживаются:
    adler32, aich, btih, ed2k, has160, ripemd160, tiger, tth, whirlpool
    blake2s, blake224, blake256, blake384, blake512, blake2b
    bmw224, bmw256, bmw384, bmw512
    crc16, crc32, crc32c, cubehash224, cubehash256, cubehash384, cubehash512
    echo224, echo256, echo384, echo512, edonr256, edonr512
    gost, gost_cryptopro, gost12_256, gost12_512
    md2, md4, md5
    sha1, sha224, sha256, sha384, sha512, sha3_224, sha3_256, sha3_384, sha3_512
    shabal192, shabal224, shabal256, shabal384, shabal512
    skein224, skein256, skein384, skein512, snefru128, snefru256
  2-й параметр RG [необязательный] - регистр:
    0 - в верхнем регистре (по умолчанию).
    1 - в нижнем регистре.
  2-й параметр LN [необязательный] - обработка:
    0 - обрабатывать не построчно (по умолчанию).
    1 - обрабатывать построчно.
#CCRYPTШифрование строки (текстовый формат). Если фраза вначале или после разделителя || начинается с #C, то последующая строка CRYPT будет означать метод возвращения шифрованных данных, а именно: CryptKey(|Algorithm), где:

CryptKey - пароль шифрования, может иметь следующие значения:
  - путь к файлу с паролем (d:\Test\Test.txt)
  - пароль (12345)
  -N - означает, что пароль будет взят из TCIMG.ini в секции [Password] в соответствующем ключе PasswordN
  -Nconvert<SeriesParam> - означает, что пароль будет взят из TCIMG.ini в секции [Password] в соответствующем ключе PasswordN и преобразован в зависимости от условий SeriesParam, где SeriesParam серия параметров для преобразования пароля см. текущее Дополнение №24. Разделитель между параметрами ;;

Algorithm - Аббревиатура алгоритма шифрования.
  Поддерживаются: AES, AES128, AES192, AES256, DES, DESX, 3DES, 3DES112, RC2, RC4, RC5, SEAL
  -N - означает, что пароль будет взят из TCIMG.ini в секции [Password] в соответствующем ключе AlgorithmN
  Если не указано, то берётся в ключе Algorithm1

-N - отрицательное число (-1, -2, ... -N).
#MCRYPTШифрование текста построчно (текстовый формат)
Параметры аналогичны #C
#RDECRYPTРасшифровывание строки (текстовый формат). Если фраза вначале или после разделителя || начинается с #R, то последующая строка DECRYPT будет означать метод возвращения дешифрованных данных, а именно: CryptKey(|Algorithm), где:

CryptKey - пароль дешифрования, может иметь следующие значения:
  - путь к файлу с паролем (d:\Test\Test.txt)
  - пароль (12345)
  -N - означает, что пароль будет взят из TCIMG.ini в секции [Password] в соответствующем ключе PasswordN
  -Nconvert<SeriesParam> - означает, что пароль будет взят из TCIMG.ini в секции [Password] в соответствующем ключе PasswordN и преобразован в зависимости от условий SeriesParam, где SeriesParam серия параметров для преобразования пароля см. текущее Дополнение №24. Разделитель между параметрами ;;

Algorithm - Аббревиатура алгоритма дешифрования.
  Поддерживаются: AES, AES128, AES192, AES256, DES, DESX, 3DES, 3DES112, RC2, RC4, RC5, SEAL
  -N - означает, что пароль будет взят из TCIMG.ini в секции [Password] в соответствующем ключе AlgorithmN
  Если не указано, то берётся в ключе Algorithm1

-N - отрицательное число (-1, -2, ... -N).
#FDECRYPTРасшифровывание текста построчно (текстовый формат)
Параметры аналогичны #R
#BNUMBERПреобразует строку в бинарные данные.
NUMBER [необязательный] тип преобразования:
  1 - ANSI (по умолчанию)
  2 - UTF16 Little Endian
  3 - UTF16 Big Endian
  4 - UTF8
Построчное преобразование (каждую строку отдельно):
  5 - ANSI
  6 - UTF16 Little Endian
  7 - UTF16 Big Endian
  8 - UTF8
#TNUMBERПреобразовывает бинарные данные в строку.
NUMBER [необязательный] тип преобразования:
  1 - ANSI (по умолчанию)
  2 - UTF16 Little Endian
  3 - UTF16 Big Endian
  4 - UTF8
Построчное преобразование (каждую строку отдельно):
  5 - ANSI
  6 - UTF16 Little Endian
  7 - UTF16 Big Endian
  8 - UTF8
#X или #XSСжатие строки бинарных данных. Если на обработку поступает не бинарная, а текстовая строка, то она автоматически преобразовывается в бинарную, а затем сжимается.
  #XS - позволяет сжимать заданные строки построчно (каждую строку отдельно).
#W или #WTРазжатие строки бинарных данных. Для разжатия бинарной строки и преобразование в текстовую используется параметр #WT
Многострочные данные разжимаются построчно (каждую строку отдельно).
#U
#US
Декодирование Hex строки с любыми дополнительными символами.
Строка "CFF0E8E2E5F2" или "%CF%F0%E8%E2%E5%F2" или "=CF=F0=E8=E2=E5=F2"... будет декодирована в строку "Привет".
  #US - декодирует многострочные данные построчно (каждую строку отдельно).
#Q!!BeginLine!!EndLine
#QP!!BeginLine!!EndLine
#QS!!BeginLine!!EndLine
Кодирование строки в Hex строку.
  BeginLine [необязательный] - строка (символ) добавляемая к началу каждого кодированного символа.
  EndLine [необязательный] - строка (символ) добавляемая к концу каждого кодированного символа.
  #Q - кодирует только символы.
  #QP - кодирует без потери специальных знаков (переносы строк, возврат каретки...).
  #QS - построчно кодирует без потери специальных знаков (каждую строку отдельно).
#0Преобразует кириллическую кодировку в ANSI 1251.
Используется, когда кодировка текста заранее неизвестна.
Определяет какой из пяти кодировок: KOI8-R, IBM-866, ISO-8859-5, UTF8, HEX принадлежит текст и преобразует в 1251.
Строка "Привет" или "ЏаЁўҐв" или "рТЙЧЕФ" или "ґЮСаЮХ гваЮ" или "Привет" или "=CF=F0=E8=E2=E5=F2"... будет декодирована в строку "Привет".
Многострочный текст обрабатывается построчно.
#1Преобразует кодировку UTF8 в ANSI 1251.
Строка "Привет" будет декодирована в строку "Привет".
Многострочный текст обрабатывается построчно.
#2Преобразует кодировку KOI8 в ANSI 1251.
Строка "рТЙЧЕФ" будет декодирована в строку "Привет".
Многострочный текст обрабатывается построчно.
#3Преобразует кодировку 866 в ANSI 1251.
Строка "ЏаЁўҐв" будет декодирована в строку "Привет".
Многострочный текст обрабатывается построчно.
#4Преобразует кодировку ISO8859 в ANSI 1251.
Строка "ґЮСаЮХ гваЮ" будет декодирована в строку "Доброе утро".
Многострочный текст обрабатывается построчно.
#5Преобразует строку алгоритмом ROT13.
Строка "Good morning" будет преобразована в строку "Tboq zbeavat".
И наоборот строка "Tboq zbeavat" будет преобразована в строку "Good morning".
Многострочный текст обрабатывается построчно.
#6Преобразует строку алгоритмом ROT47.
Строка "Good morning" будет преобразована в строку "v@@5 >@C?:?8".
И наоборот строка "v@@5 >@C?:?8" будет преобразована в строку "Good morning".
Многострочный текст обрабатывается построчно.
?CCode
или
?CCode1-Code2
Преобразует строку Unicode в строку.
1. Code - номер кодировки, в который необходимо преобразовать строку см. Дополнение №28
2. Code1-Code2 - номера кодировок, строка из кодировки Code1 будет преобразована в кодировку Code2
?DCode
или
?DCode1-Code2
Преобразует Unicode строку в строку.
1. Code - номер кодировки, в который необходимо преобразовать строку см. Дополнение №28
2. Code1-Code2 - номера кодировок, строка из кодировки Code1 будет преобразована в кодировку Code2
?ANumber|LNВозвращает указанное число символов строки слева.
Если фраза вначале или после разделителя || начинается с ?A, то последующий номер Number будет означать получение слева заданного количества символов строки.
  2-й параметр LN [необязательный] означает построчную обработку.
в Number могут использоваться математические действия.
?ZNumber|LNВозвращает указанное число символов строки справа.
Если фраза вначале или после разделителя || начинается с ?Z, то последующий номер Number будет означать получение справа заданного количества символов строки.
  2-й параметр LN [необязательный] означает построчную обработку.
в Number могут использоваться математические действия.
?LNumber|LNУдаляет указанное количество символов строки слева.
Если фраза вначале или после разделителя || начинается с ?L, то последующий номер Number будет означать удаление слева заданного количества символов строки.
  2-й параметр LN [необязательный] означает построчную обработку.
в Number могут использоваться математические действия.
?RNumber|LNУдаляет указанное количество символов строки справа.
Если фраза вначале или после разделителя || начинается с ?R, то последующий номер Number будет означать удаление справа заданного количества символов строки.
  2-й параметр LN [необязательный] означает построчную обработку.
в Number могут использоваться математические действия.
?MStart:Count:LNИзвлекает часть символов в строке.
Если фраза вначале или после разделителя || начинается с ?M, то последующий номер Start будет означать позицию начального символа строки.
Count [необязательный] количество извлекаемых символов строки (по умолчанию до конца строки -1).
Двоеточие - разделитель между Start и Count
  3-й параметр LN [необязательный] означает построчную обработку.
в Start и Count могут использоваться математические действия.
?BNumber!!LineУдаляет/Добавляет строку к строке с условиями.
Если фраза вначале или после разделителя || начинается с ?B, то последующий номер Number будет означать условие удаления/добавления строки Line.
Если Number отрицательный номер, то при пустой исходной строке преобразования не происходят.

  1 - удалить в начале фразу Line, если таковая есть (учитывать регистр)
  2 - удалить в начале фразу Line, если таковая есть (не учитывать регистр)
  3 - удалить в конце фразу Line, если таковая есть (учитывать регистр)
  4 - удалить в конце фразу Line, если таковая есть (не учитывать регистр)

  5 - добавить в начало фразу Line, если таковой нет (учитывать регистр)
  6 - добавить в начало фразу Line, если таковой нет (не учитывать регистр)
  7 - добавить в конец фразу Line, если таковой нет (учитывать регистр)
  8 - добавить в конец фразу Line, если таковой нет (не учитывать регистр)

  9 - удалить в начале и в конце фразу Line, если таковая есть (учитывать регистр)
  10 - удалить в начале и в конце фразу Line, если таковая есть (не учитывать регистр)

  11 - добавить в начало и в конец фразу Line, если таковой нет (учитывать регистр)
  12 - добавить в начало и в конец фразу Line, если таковой нет (не учитывать регистр)

  13 - добавить в начало фразу Line, если таковой нет или удалить, если есть (учитывать регистр)
  14 - добавить в начало фразу Line, если таковой нет или удалить, если есть (не учитывать регистр)

  15 - добавить в конец фразу Line, если таковой нет или удалить, если есть (учитывать регистр)
  16 - добавить в конец фразу Line, если таковой нет или удалить, если есть (не учитывать регистр)

  17 - добавить в начало и в конец фразу Line, если таковой нет или удалить, если есть (учитывать регистр)
  18 - добавить в начало и в конец фразу Line, если таковой нет или удалить, если есть (не учитывать регистр)

  19 - удалить в начале фразу Line, если таковая есть, с добавлением фразы Line в конец (учитывать регистр)
  20 - удалить в начале фразу Line, если таковая есть, с добавлением фразы Line в конец (не учитывать регистр)

  21 - удалить в конце фразу Line, если таковая есть, с добавлением фразы Line в начало (учитывать регистр)
  22 - удалить в конце фразу Line, если таковая есть, с добавлением фразы Line в начало (не учитывать регистр)

  23 - добавить в начало фразу Line, если таковая есть (учитывать регистр)
  24 - добавить в начало фразу Line, если таковая есть (не учитывать регистр)
  Построчное удаление/добавление

  51 - построчно удалить в начале фразу Line, если таковая есть (учитывать регистр)
  52 - построчно удалить в начале фразу Line, если таковая есть (не учитывать регистр)
  53 - построчно удалить в конце фразу Line, если таковая есть (учитывать регистр)
  54 - построчно удалить в конце фразу Line, если таковая есть (не учитывать регистр)

  55 - построчно добавить в начало фразу Line, если таковой нет (учитывать регистр)
  56 - построчно добавить в начало фразу Line, если таковой нет (не учитывать регистр)
  57 - построчно добавить в конец фразу Line, если таковой нет (учитывать регистр)
  58 - построчно добавить в конец фразу Line, если таковой нет (не учитывать регистр)

  59 - построчно удалить в начале и в конце фразу Line, если таковая есть (учитывать регистр)
  60 - построчно удалить в начале и в конце фразу Line, если таковая есть (не учитывать регистр)

  61 - построчно добавить в начало и в конец фразу Line, если таковой нет (учитывать регистр)
  62 - построчно добавить в начало и в конец фразу Line, если таковой нет (не учитывать регистр)

  63 - построчно добавить в начало фразу Line, если таковой нет или удалить, если есть (учитывать регистр)
  64 - построчно добавить в начало фразу Line, если таковой нет или удалить, если есть (не учитывать регистр)

  65 - построчно добавить в конец фразу Line, если таковой нет или удалить, если есть (учитывать регистр)
  66 - построчно добавить в конец фразу Line, если таковой нет или удалить, если есть (не учитывать регистр)

  67 - построчно добавить в начало и в конец фразу Line, если таковой нет или удалить, если есть (учитывать регистр)
  68 - построчно добавить в начало и в конец фразу Line, если таковой нет или удалить, если есть (не учитывать регистр)

  69 - построчно удалить в начале фразу Line, если таковая есть, с добавлением фразы Line в конец (учитывать регистр)
  70 - построчно удалить в начале фразу Line, если таковая есть, с добавлением фразы Line в конец (не учитывать регистр)

  71 - построчно удалить в конце фразу Line, если таковая есть, с добавлением фразы Line в начало (учитывать регистр)
  72 - построчно удалить в конце фразу Line, если таковая есть, с добавлением фразы Line в начало (не учитывать регистр)

  73 - построчно добавить в начало фразу Line, если таковая есть (учитывать регистр)
  74 - построчно добавить в начало фразу Line, если таковая есть (не учитывать регистр)
?S!!BeginLine!!EndLineКаждый символ строки заменить ASCII-кодом символа.
  BeginLine [необязательный] - строка (символ) добавляемая к началу каждого заменённого символа.
  EndLine [необязательный] - строка (символ) добавляемая к концу каждого заменённого символа.

Аналог функции Asc(), только для каждого символа строки.
?W!!BeginLine!!EndLineКаждый символ строки заменить юникод-кодом символа.
  BeginLine [необязательный] - строка (символ) добавляемая к началу каждого заменённого символа.
  EndLine [необязательный] - строка (символ) добавляемая к концу каждого заменённого символа.

Аналог функции AscW(), только для каждого символа строки.
?T|Line1|Line2| ... |LineN Преобразование заданных строк.
LineN представляет собой строку: Symbol,Numbers!!Text (может использоваться несколько раз, через разделитель |)
  Symbol - символ, определяющий режим добавления текста:
    a - добавление текста в начало строк заданных номеров.
    b - добавление текста в начало строк, кроме заданных номеров.

    z - добавление текста в конец строк заданных номеров.
    y - добавление текста в конец строк, кроме заданных номеров.

    c - поиск и замена с регулярными выражениями в строках заданных номеров.
    x - поиск и замена с регулярными выражениями в строках, кроме заданных номеров.

    d - удаление содержимого строк заданных номеров.
    v - удаление содержимого строк, кроме заданных номеров.

    f - удаление строк заданных номеров.
    q - удаление строк, кроме заданных номеров.

    e - преобразование строк заданных номеров.
    u - преобразование строк, кроме заданных номеров.

  Numbers - номера строк перечисленных через запятую (1,3,8,11).
    • Может использоваться символ : , означающий прямой диапазон (5:10 - с 5-й по 10-ю строки)
    • Могут использоваться отрицательные числа, означающие отсчёт с конца строк. (-1 - последняя строка)
    • Можно использоваться несколько условий (1,3,5:8,10,15:-1)

При Symbol = "a", "z", "b", "y", "c", "x", "e", "u"
  Text - текст (строка), которая добавляется, в ней может использоваться:
    • Если необходимы кавычки, то используются две одинарных кавычки (апострофа) ''
    • Если необходим пробел - используются два символа тильды ~~.
    • Для специальных знаков могут использоваться Коды ASCII символов и функции Chr() и ChrW() см. Дополнение №26
    • cliptext - в любом месте тег cliptext будет заменён содержимым буфера обмена.
    • <info> - информация переданная параметром см. Дополнение №10
    • GLOBALNAME - данные, переданные глобальными переменными. см. Дополнение №23
    • Тег :NUM: будет заменён номером текущей строки.
    • Тег :0NUM: будет заменён номером текущей строки с добавлением начальных нулей, относительно количества строк.

При Symbol = "c" и "x"
  Text является условием поиска и замены. Синтаксис подобный параметру formt<>

При Symbol = "d", "v", "f" и "q"
  Text не прописывается.

При Symbol = "e" и "u"
  Text является условием преобразования. Синтаксис подобный текущему Дополнению №24.
    Разделитель между подпараметрами ;;
В версии 14.9 добавлено:
При всех Symbol в Text может использоваться подпараметр linen<Number>
где Number - номер строки. При отрицательных числах строка берётся с конца.
Параметр будет заменён содержимым строки заданного номера.
В версии 14.0 добавлены условия:
Symbol=Len,Numbers!!Text - строка будет преобразована, если длина строки равна числу Len
Symbol>Len,Numbers!!Text - строка будет преобразована, если длина строки больше числа Len
Symbol<Len,Numbers!!Text - строка будет преобразована, если длина строки меньше числа Len
Symbol?Len1-Len2,Numbers!!Text - строка будет преобразована, если длина строки входит в прямой диапазон от числа Len1 до числа Len2 (включая эти числа)
В версии 14.3 добавлены условия:
SymbolN:String,Numbers!!Text, где:
  String
    строка для проверки вхождения
    путь к файлу, в котором прописана строка или строки для проверки вхождения
  N
    1 - строка будет преобразована, если есть в начале вхождение заданной строки String
    2 - строка будет преобразована, если есть в конце вхождение заданной строки String
    3 - строка будет преобразована, если есть вхождение заданной строки String
    4 - строка будет преобразована, если нет в начале вхождения заданной строки String
    5 - строка будет преобразована, если нет в конце вхождения заданной строки String
    6 - строка будет преобразована, если нет вхождения заданной строки String
    7 - строка будет преобразована, если есть вхождение заданного регулярного выражения String
    8 - строка будет преобразована, если нет вхождения заданного регулярного выражения String
При многострочном String N с 1 по 6 ищется вхождение любой заданной строки

    31 - строка будет преобразована, если есть вхождения всех заданных строк String (актуально при многострочном String)
    32 - строка будет преобразована, если нет вхождений всех заданных строк String (актуально при многострочном String)

Если в String необходимо использовать запятую и вертикальную черту, то:
  Вместо запятой используется символ (правая верхняя одинарная кавычка)
  Вместо вертикальной черты используется символ ¦

Дополнительные параметры:
pStart#Step - позволяет задать режим обработки:
Start - начальный номер обрабатываемой строки (по умолчанию 1)
Step - шаг (по умолчанию 1)
или
pStart#Step#InArow
Start - начальный номер обрабатываемой строки (по умолчанию 1)
Step - шаг (по умолчанию 1)
InArow - количество подряд строк (по умолчанию 1)
При этом шаг Step должен быть больше количества подряд строк InArow (в ином случае результатом будет ошибка или неправильный вывод...)
?H|Number|Delim1|Delim2Группировка и разгруппировка строки номеров.
  Number - режим преобразования.
   Для строки с цифрами:
    1 - преобразует строку "1,2,3,4,5" в "1-5"
    2 - преобразует строку с предварительной сортировкой и удалением дубликатов "1,4,2,5,3" в "1-5"
    5 - преобразует строку "1-5" в "1,2,3,4,5"
    6 - преобразует строку "01-05" в "01,02,03,04,05" (сохраняя ведущие нули)
   Для строки с цифрами и латинских букв с цифрами:
    7 - преобразует строку с предварительной сортировкой и удалением дубликатов
      "4,s5,dn8,5,s3,2,1,s1,dn7,dn6,dn9,s6,s2,s4,3" ==> "1-5,dn6-dn9,s1-s6"
      "s6,4,3,dn7,s2,dn8,5,s3,s5,2,s4,dn9,1,s1,dn6" ==> "dn6-dn9,s1-s6,1-5"

  Delim1 [необязательный] - строка (символ) разделитель при группировке (по умолчанию дефис - )
  Delim2 [необязательный] - строка (символ) разделитель между символами (по умолчанию запятая , )
  В Delim1 и Delim2 могут использоваться функций Autoit Chr() и ChrW(), которые заменяются соответствующими символами
Параметр способен преобразовывать более сложные строки
"h1,h2,m1,h3,h4,h5,h6,h7,h8,h9,h10,h11,1,2,35,3,4,5,6,7,8,9,10,g11,g12,g13,14,28,m5,m6,m7"
в "h1,h2,m1,h3-h11,1,2,35,3-10,g11-g13,14,28,m5-m7" и обратно
Строки обрабатываются построчно, если многострочный текст.
?E|N1:N2|N1:N2 ... Меняет местами заданные строки.
  N1:N2 - номера строк которые меняются местами.
  Может быть прописано несколько пар через разделитель |
  При отрицательных числах отсчёт ведётся с конца.
?G|N1:N2|N1:N2 ... Перемещает строку в заданную позицию.
  N1:N2 - строка N1 будет перемещена в позицию N2.
  Может быть прописано несколько пар через разделитель |
  Необходимо учитывать, что массив строк каждый раз меняется.
  При отрицательных числах отсчёт ведётся с конца.
?J|N1:N2|N1:N2 ... Перемещает строку с заменой.
  N1:N2 - строка N1 будет перемещена, заменяя строку N2.
  Может быть прописано несколько пар через разделитель |
  Необходимо учитывать, что массив строк каждый раз меняется и уменьшается.
  При отрицательных числах отсчёт ведётся с конца.
?QParameters Поиск и замена из файла.
Parameters - FilePath(|Section|Mode|Flag|Registr|Sort|Concurrence|SymbolDelim|Read) , где:

  FilePath - путь к файлу списка (обязательный параметр, остальные необязательные).
    В списке должны быть прописаны пары поиска и замены, разделённые "=" .
    Каждая пара с новой строки.
    Если замена не прописана, то происходит удаление строки поиска.
    Так же в поиске и замене можно вставлять символы с помощью функций Autoit Chr() и ChrW(),
      которые заменяются соответствующими символами.
    Так же в поиске и замене можно использовать теги "@CRLF", "@CR", "@LF", "@TAB" означающие переносы строки и табуляцию.
  $GLOBALNAME2D - может использоваться для передачи данных 2D массив из 2-х колонок, в котором:
    в 0-й колонке в ячейках данные для поиска.
    в 1-й колонке в соответствующих ячейках данные для замены.
Пример записи:

найти=заменить
привет=пока
строка ChrW(8618) =
@CRLFнайти@CRLF=@CRLFзаменить@CRLF

  Section - если в файле пары прописаны в секции, то указывается имя секции (в ином случае прописывается символ #) (по умолчанию без секции).
  Mode - режим обработки:
    0 - обычный (по умолчанию).
    1 - двойная обработка (это гораздо медленнее, но предотвращает пересечения между строками замены).
  Flag - подготовка списка:
    1 - не производить предварительную очистку.
    2 - удалить комментарии в секции списка "поиска и замен" (по умолчанию, если указана секция).
  Registr - регистр:
    0 - замена производится без учёта регистра.
    1 - с учётом регистра (по умолчанию).
  Sort - сортировка:
    0 - не сортировать (по умолчанию).
    1 - сортировать строки поиска по длине, по убыванию. (Это позволяет заменять последовательно: длинные строки, затем короткие...).
  Concurrence - совпадение:
    0 - поиск любого вхождения в строку (по умолчанию).
    1 - поиск точного совпадения со всем текстом. (Только при точном совпадении происходит замена).
      построчный поиск и замена:
    2 - поиск точного совпадения со строкой.
    3 - поиск точного совпадения со строкой слева.
    4 - поиск точного совпадения со строкой справа.
    5 - поиск точного совпадения со строкой слева с заменой всей строки.
    6 - поиск точного совпадения со строкой справа с заменой всей строки.
    7 - поиск любого совпадения в строке с заменой всей строки.
  SymbolDelim - символ, разделяющий пары поиска и замены.
    По умолчанию символ "="
    Так же можно вставлять символы с помощью функций Autoit Chr() и ChrW(), которые заменяются соответствующими символами.
  Read
    0 - информация файла или переменной считывается один раз, запоминается для дальнейшего использования (по умолчанию).
    1 - информация файла или переменной считывается каждый раз как только встретится параметр.
?PПеремешивает строки случайным образом.
?PS!!DelimПеремешивает случайным образом фразы между заданным разделителем.
  Delim - разделитель (символ или строка), фразы между которым будут перемешаны.
  Многострочный текст обрабатывается построчно.
?O|Key|Mode|DelimСчитывание строки из TCIMG.ini (TCIMGU.ini) из секции [Lines].
  Key - ключ из секции [Lines]
  Mode - режим:
    0 - заменяется текущая строка (по умолчанию).
    1 - вставляется в конец текущей строки через разделитель Delim.
    2 - вставляется в начало текущей строки через разделитель Delim.
  Delim - [необязательный] разделитель в режиме Mode=1 и Mode=2 (по умолчанию разделителя нет).
?N
?N!!Registr!!Delim
?NS
?NS!!Registr!!Delim
Удаляет дубликаты между заданным разделителем (остаются уникальные в единственном экземпляре).
  Registr - [необязательный] чувствительность к регистру.
    0 - учитывать регистр (по умолчанию).
    1 - не учитывать регистр.
  Delim - [необязательный] разделитель (символ или строка), между которым будут удалены дубликаты.
    по умолчанию "пустой разделитель", т.е. удаление одинаковых символов.

  ?N - многострочный текст обрабатывается построчно.
  ?NS - обрабатывается весь текст.
#O=Number|SeriesParamПреобразование строки относительно её длины.
  =Number - преобразование, если длина равна заданному числу Number
  >Number - преобразование, если длина больше заданного числа Number
  <Number - преобразование, если длина меньше заданного числа Number
<>Number - преобразование, если длина не равна заданному числу Number
   ?Min-Max - преобразование, если длина входит в диапазон Min-Max заданных чисел
  SeriesParam - серия параметров для преобразования. см. Дополнение №24 (Разделитель между параметрами ;; )
?UЗамена функций Autoit значениями.
  Chr() и ChrW() заменяются соответствующими символами.
  ClipGet() заменяется содержимым буфера обмена.
  Number() позволяет производить математические действия.
  StringLeft() позволяет получать указанное число символов строки слева.
  StringRight() позволяет получать указанное число символов строки справа.
  StringMid() позволяет получать часть символов строки.
  StringLen() позволяет получать количество символов строки.
>>StringБез преобразования и без вставки. Указанные в строке String данные не будут никуда вставлены.
Это может понадобиться для сложных вычислений, к примеру в параметре ?V

Пример:

;; для выделенных изображений добавить слово 'равно', если ширина в 2 раза больше высоты; если больше, чем в 2 раза, то 'больше'; если меньше, чем в 2 раза, то 'меньше'
slist=%WL||^^*||?V|>>|Assign('var_n',Number(<info=i1::>/<info=i2::>),2)||?V|^^|'равно':($var_n=2?'равно':($var_n>2?'больше':'меньше') GLOBALSLIST<a>

;; 1) в переменную $var_n записываются данные: ?V|>>|Assign('var_n',Number(<info=i1::>/<info=i2::>),2)
;; 2) данные переменной $var_n используются в тернарном сравнении: ?V|^^|'равно':($var_n=2?'равно':($var_n>2?'больше':'меньше')

?V
?V|
2Symbols|String
Выполняет/вычисляет выражение Autoit. (см. список раздела "Функции Autoit")
?V - выполняет выражение Autoit текущей строки.
?V|2Symbols|String - выполняет выражение Autoit заданной строки, где:
  2Symbols - 2 символа параметров Дополнения №24 (^^, $$, ## и др.)
    определяет положение в текущей строке вычисленного значения выражения.
  String - строка выражения Autoit.
    в строке важен синтаксис, иначе будет возвращена пустая строка.

Примеры:

?V|$$|FileGetTime('::',0,1)&'<--->'

;; Получение различных счётчиков при переименовании
renms=%WL||##-test-cntr<1:6|1|1>||?V|^^|Ceiling(:NUMBER:/6)||upd<1>
renms=%WL||$$-cntr<1:6|1|1>-img-||?V|$$|:NUMBER:-Floor(:NUMBER:/6)*6||upd<1>
renms=%WL||$$-cntr<1:6|1|1>-img-||?V|$$|Mod(:NUMBER:,6)?Mod(:NUMBER:,6):6||upd<1>
renms=%WL||$$-cntr<1:6|1|1>-img-||?V|>>|Assign('var_n',:NUMBER:-Floor(:NUMBER:/6)*6),2||?V|^^$var_n=0?6:$var_n||upd<1>

?Y
?Y|
2Symbols|String
Преобразование с помощью функций js, vbs, au3.
?Y - запускает заданную функцию с параметрами.
?Y|2Symbols|String - выполняет выражение Autoit заданной строки, где:
  2Symbols - 2 символа параметров Дополнения №24 (^^, $$, ## и др.)
    определяет положение в текущей строке вычисленного значения выражения.
  String - состоит из Number|Func|Param1|Param2|...|Param8, где:
    Number - режим запуска:
      0 - для функций vbs скриптов.
      1 - для функций js скриптов.
      2 - для функций au3 скриптов.
    Func - имя функции.
    Param1|Param2|...|Param8 - параметры, передаваемые функции.
      тег :TEXT: будет заменён текущим текстом.

Подключение своих скриптов и функций описано в командах funvb, funjs, funau
Примеры:

;; добавить в конец текстового файла под курсором статистику
textt=C:\test.txt||?Y|$$|1|getTextStatistics|:TEXT:||upd<1>

?XURL\\Code Получение содержимого страницы интернета.
  URL - ссылка (http://tc-image.3dn.ru/forum/5-498-1)
  Code [необязательный] - кодировка получаемых данных:
    1 - ANSI 1251 (по умолчанию)
    2 - UTF-16 LE 1200
    3 - UTF-16 BE 1201
    4 - UTF-8
  URL\\8 - открытие страницы в скрытом браузере IE и получение информации.
      есть возможность получать содержимое из chm файлов (ссылки вида: mk:@MSITStore:Path.chm::URL\\8).
  TITLE\\9 - получение html кода содержимого открытого окна Explorer, CHM, ..., где TITLE - заголовок или хендл окна.
  URL\\10 - получение информации интернета с помощью объекта MSXML2.XMLHTTP.
Так же поддерживается:
  $GLOBALNAME\\Code - исходный код html всех URL ссылок, переданных в глобальном массиве
#AString

#ZString
Вставка. Вставка после обработки всех параметров переданных команде.
  Параметры подключены в командах: lists, slist (и подобных), textx, textt, extra, extrf, urlxt, exbns, exbnf
  #A - вставка в начало после всех преобразований.
  #Z - вставка в конец после всех преобразований.
  В String могут использоваться:
    • "@CR" - символ возврата каретки Chr(13), "@LF" - символ перевода строки Chr(10), "@CRLF" = @CR & @LF, "@TAB" - символ Tab Chr(9).
    • функции Autoit (см. параметр ?U)
    • информация глобальных переменных GLOBALNAME<N>, GLOBALNAME<xN> (см. Дополнение №23)
    • информация переменных $var_... (см. команду exect)
Если параметры нужны в какой-либо команде, то сообщите - подключу.
#YParameters Получение из строки заданных символов и их группировка.
Parameters - Mode:Split:Delim1:Delim2, где:

  Mode - режим получения символов:
   -1 - вставляется пустая строка (позволяет вставить разделитель Delim2)
    0 - вставляется текущая строка.
    1 - получение из строки чисел.
    2 - получение из строки английских букв.
    3 - получение из строки русских букв.
    RegEx - регулярное выражение для получения нужных символов.
  Split - количество, по сколько символов "разбивать" строку:
    0 - не разбивать.
  Delim1 - [необязательный] строка (символ) разделитель между группой символов при разбивке Split.
    по умолчанию символ |
   -1 - перенос строки @CRLF
  Delim2 - [необязательный] строка (символ) добавляемый в конец группы.
Может использоваться несколько групп параметров через разделитель !!
Mode:Split:Delim1:Delim2!!Mode:Split:Delim1:Delim2!!...!!Mode:Split:Delim1:Delim2
  В Delim1 и Delim2 могут использоваться функций Autoit Chr() и ChrW(), которые заменяются соответствующими символами
#JNumber|LNXor кодирование/декодирование строки.
Если фраза вначале или после разделителя || начинается с #J, то последующий номер Number будет означать число модуль побитового сложения кодов символов строки.
  2-й параметр LN [необязательный] означает построчную обработку.
В Number могут использоваться математические действия.
Кодирование/декодирование должно осуществляться с одним и тем же модулем Number.
?i|Data|Mode|DelimПолучение данных.
  Data - возможны варианты:
    File - путь к текстовому файлу.
    $GLOBALNAME - глобальный массив: получение всех строк.
    $GLOBALNAME[N] - получение заданной строки глобального массива.
  Mode - режим:
    0 - заменяется текущая строка (по умолчанию).
    1 - вставляется в конец текущей строки через разделитель Delim.
    2 - вставляется в начало текущей строки через разделитель Delim.
  Delim - [необязательный] разделитель в режиме Mode=1 и Mode=2 (по умолчанию разделителя нет).

  В Delim могут использоваться функции Autoit.
#i|Data|Mode|Delim1|Delim2Получение данных по списку.
  Data - возможны варианты:
    FileList - путь к списку с текстовыми файлами.
    $GLOBALNAME - глобальный массив, в котором содержатся пути к текстовым файлам.
  Mode - режим:
    0 - заменяется текущая строка (по умолчанию).
    1 - вставляется в конец текущей строки через разделитель Delim2.
    2 - вставляется в начало текущей строки через разделитель Delim2.
  Delim1 - [необязательный] разделитель между содержимым текстовых файлов (по умолчанию -1 разделителя нет).
  Delim2 - [необязательный] разделитель в режиме Mode=1 и Mode=2 (по умолчанию разделителя нет).

  Delim1 и Delim2 могут использоваться функции Autoit.
?0|2Symbols|String
?1|2Symbols|String
?2|2Symbols|String
?3|2Symbols|String
?4|2Symbols|String
Получение информации по списку.
  ?0|2Symbols|$GLOBALNAME|Number
    Получение информации из массива, где:
      $GLOBALNAME - глобальный массив с данными см. Дополнение №23.
      Number - номер ячейки массива, из которой будут получены данные.

  ?1|2Symbols|File|Delim|Number
    Получение информации из файла, где:
      File - путь к файлу со списком.
      Delim - разделитель, по которому список делится на части.
      Number - номер части, из которой будут получены данные.

  ?2|2Symbols|File|Section|Number
    Получение информации из секции ini файла, где:
      File - путь к ini файлу.
      Section - имя секции, в которой прописан список строк.
      Number - номер строки для получения данных.

  ?3|2Symbols|File|Section|Key|Delim|Number
    Получение информации из ключа ini файла, где:
      File - путь к ini файлу.
      Section - имя секции.
      Key - имя ключа, в значении которого список данных, прописанных через разделитель.
      Delim - разделитель, по которому список делится на части.
      Number - номер части, из которой будут получены данные.

  ?4|2Symbols|String|Delim|Number
    Получение данных из строки, где:
      String - строка со списком данных, прописанных через разделитель.
      Delim - разделитель, по которому список делится на части.
      Number - номер части, из которой будут получены данные.

  2Symbols - 2 символа параметров Дополнения 24 (^^, $$, ## и др.)
    определяет положение в текущей строке полученной информации.

  Delim - в разделителе могут использоваться:
    • "@CR" - символ возврата каретки Chr(13), "@LF" - символ перевода строки Chr(10), "@CRLF" = @CR & @LF, "@TAB" - символ Tab Chr(9).
    • функции Autoit (см. параметр ?U)

  Данные возвращаются "по кругу": если номер (Number) больше, чем частей, то расчёт ведётся с начала.

slist=%WL||?1|^^|C:\List.txt|@CRLF|:LISTNUM: GLOBALSLIST<a> ;; добавить в начало путей выделенных объектов фразы из файла

slist=%WL||?2|^^|C:\List.ini|Section|:LISTNUM: GLOBALSLIST<a> ;; добавить в начало путей выделенных объектов фразы из файла, прописанных в секции [Section] каждая с новой строки

slist=%WL||?3|^^|C:\List.ini|Section2|Key|Chr(124)|:LISTNUM: GLOBALSLIST<a> ;; добавить в начало путей выделенных объектов фразы из ключа Key в секции [Section], прописанных через разделитель |

slist=%WL||?4|^^|11\22\33\44\55|\|:LISTNUM: GLOBALSLIST<a> ;; добавить в начало путей выделенных объектов заданные фразы

sends=11|22|33|44|55??-4 slist=%WL||?0|^^|$GLOBALSENDS|:LISTNUM: GLOBALSLIST<a> ;; добавить в начало путей выделенных объектов фразы из массива

?5|Line!!Delim Получение кода таблиц(ы) htm, включая вложенные таблицы. (тег <table>).
  Line - строка адресов таблиц, прописанных через запятую. Варианты:
    2 - получить код 2-й таблицы 1-го уровня.
    2,3 - получить код 2-й и 3-й таблиц 1-го уровня.
    2/1/2 - получить код вложенной таблицы 3-го уровня по заданному адресу.
    4/2/1,3/1 - получить код вложенных таблиц 3-го и 2-го уровня по заданным адресам.
  Delim - [необязательный] разделитель (символ или строка) между заданными таблицами (по умолчанию перенос строки)
Для получения нумерованной адресами структуры всех таблиц кода воспользуйтесь ?5|0
?6|Lang1|Lang2|Mode Онлайн перевод (Временно может не работать).
  Lang1 - аббревиатура языка с которого нужно перевести (для автоматического распознавания языка прописывается 'auto')
  Lang2 - аббревиатура языка на который нужно перевести текущий текст. см. Дополнение №14
  Mode - режим перевода:
    0 - перевод в Google.
    1 - перевод в MS Bing.
    2 - перевод в Yandex.
    3 - перевод в MyMemory ('auto' не поддерживается).
Подробности в функции _GTR
#7|Mode Ёфикатор. Замена в русских словах буквы «е» на букву «ё» («еще» на «ещё»).
  Mode - [необязательный] режим пользовательского словаря:
    0 - словарь берётся только из TCIMGU.ini (по умолчанию).
    1 - словарь из TCIMGU.ini объединяется со словарём из TCIMG.ini.
    (в словаре удаляются крайние/лишние пробелы и дубликаты).
Основная библиотека слов ...\Files\Zip\ELibrary.zip (в тексте заменяются только однозначные слова, к примеру, слово «слез» не заменяется на «слёз»)
Дополнительная библиотека подключена в TCIMG.ini в ключе ELibrary=$f212\ELibrary.txt

Пользовательский шаблон замен вы можете подключить в TCIMGU.ini в секции [Setting] в ключе ELibrary:
  каждое слово или словосочетание с буквой "Ё" прописывается с новой строки.
Если у вас есть дополнительные слова для замены или исправления - высылайте - будут вставлены в библиотеку.


Дополнение к параметру #N

tnum[]

enum[]
Цифровой счётчик.
Параметр tnum[Begin|Step|Count], где:
  Begin - начальное число.
  Step - шаг счётчика.
  Count - количество цифр в счётчике.
Буквенный счётчик.
Параметр enum[Letter|Step|Count], где:
  Letter - буква с которой начать отсчёт.
  Step - шаг счётчика.
  Count - количество букв в счётчике.

Могут применяться 2 варианта:
  1. В котором используются все три подпараметра [A|3|2] - аналог счётчика в диалоге переименования в Total Commander
  2. В котором используется только первые два [A+] или [A+|1] (к символу с которого начинать дописывается +)

Счётчик может быть как латинским, так и кириллицей, в зависимости от заданной буквы Letter
Счётчик может быть как нижнем, так и в верхнем регистре, в зависимости от заданной буквы Letter
Буквенный счётчик со своим набором символов.
Параметр enum[Key?Number|Step|Count], где:
  Key - имя ключа в TCIMG.ini в секции [Enum], в котором прописан набор символов через разделитель |.
  Number - номер - с какого элемента из набора начать.
  Step - шаг счётчика.
  Count - количество букв в счётчике.

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

[Enum]
Key1=||||||||
Key2=||||||||

rndm[]Получение случайных данных. см. Дополнение №30


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