|
Макрос
|
Описание
|
%XMP_ArgCount(Text, [Delimiter],
[QuoteChar])
|
Определяет количество элементов в "Text", разделённых указанными "Delimiter". Элементы внутри "QuoteChar" игнорируются.
Если "Delimiter" не указан, используется пробел. Если "QuoteChar" не указан, используется стандартная кавычка (").
Пример:
%XMP_ArgCount(|"ABC 123 XYZ"789 test1 test2|)
%XMP_ArgCount(|"ABC,123,XYZ" 789,test1,test2|,|,|)
%XMP_ArgCount(|'ABC#123#XYZ" 789#test1:test2|,|#:|,|'"|)
Вывод:
3
3
3
|
%XMP_ArgItem(Text, Item [Delimiter],
[QuoteChar])
|
Возвращает указанный "Item" из "Text", разделённого "Delimiter". Элементы внутри "QuoteChar" игнорируются.
Если "Delimiter" не указан, используется пробел. Если "QuoteChar" не указан, используется стандартная кавычка (").
Пример:
%XMP_ArgItem(|"ABC 123 XYZ"789 test1 test2|,|2|)
%XMP_ArgItem(|"ABC,123,XYZ" 789,test1,test2|,|3|,|,|)
%XMP_ArgItem(|'ABC:123#XYZ" 789#test1:test2|,|1|,|#:|,|'"|)
Вывод:
test1
test2
'ABC:123#XYZ" 789
|
|
%XMP_Decode(Text, Method)
|
Декодирует "Text" в формате MIME (Base64) или Quoted-Printable.
Аргумент "Method" указывает формат: Base64 ("B") или Quoted-Printable ("Q").
Пример:
%XMP_Decode("RGV1dHNjaGxhbmQgaXN0IHNjaPZu","B")
%XMP_Decode("est une soci=E9t=E9 Suisse","Q")
Вывод:
Deutschland ist schön
est une société Suisse
|
|
%XMP_Encode(Text, Method)
|
Кодирует "Text" в формате MIME (Base64) или Quoted-Printable.
Аргумент "Method" указывает формат: Base64 ("B") или Quoted-Printable ("Q").
Пример:
%XMP_Encode("Deutschland ist schön","B")
%XMP_Encode("est une société Suisse","Q")
Вывод:
RGV1dHNjaGxhbmQgaXN0IHNjaPZu
est une soci=E9t=E9 Suisse
|
|
%XMP_Grep(Text, RegExp, [Output])
|
Ищет "Text" построчно с использованием регулярного выражения "RegExp".
Аргумент "Output" определяет, какие строки выводить:
M -> строки, совпадающие с RegExp (по умолчанию)
N -> строки, не совпадающие с RegExp
B -> строки до первого совпадения
A -> строки после первого совпадения
I -> вместе с "A" или "B", включает строку с совпадением
Внимание: кавычки заменяются на 0x02 в коде. Для поиска кавычек используйте "\x02" вместо "\x22".
Пример:
Все строки с "http://www.":
%XMP_Grep("%TEXT","http:\/\/www\.")
Вывод:
> Unsere URL lautet https://www.ritlabs.com/
Auf https://www.ritlabs.com/ finden Sie auch das Extended Macro Plugin
https://www.ritlabs.com/
|
|
%XMP_HtmlDec(Text, [Options])
|
Декодирует HTML-сущности в "Text" в соответствующие символы.
Аргумент "Options" определяет способ:
E -> HTML-сущности в национальные символы (по умолчанию)
H -> HTML-спецсимволы (>, <, ", &)
Пример:
%XMP_HtmlDec('<b>"àéî€ & äöüß
"</b>')
%XMP_HtmlDec('<b>"àéî€ & äöüß
"</b>','H')
%XMP_HtmlDec('<b>"àéî€ & äöüß
"</b>','EH')
Вывод:
<b>"àéî€ & äöüß"</b>
<b>"àéî€ & äöüß"</b>
<b>"àéî€ & äöüß"</b>
|
|
%XMP_HtmlEnc(Text, [Options])
|
Кодирует специальные символы в "Text" в HTML-сущности.
Аргумент "Options" определяет способ:
E -> национальные символы в именованные сущности (по умолчанию)
U -> национальные символы в числовые коды
H -> HTML-спецсимволы
Пример:
%XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>')
%XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','U')
%XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','H')
%XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','EH')
%XMP_HtmlEnc('<b>"àéî€ & äöüß"</b>','UH')
Вывод:
<b>"àéî€ & äöü
ß"</b>
<b>"àéî€ & äöüß
"</b>
<b>"àéî€ & äöüß"</b>
<b>"àéî€ & äö
üß"</b>
<b>"àéî€ & äö
üß"</b>
|
%XMP_LineBtw(Text, Start, End,
[StartPos, EndPos])
|
Возвращает часть строки "Text" между "Start" и "End".
"StartPos" и "EndPos": 1 — в начале или в конце строки; 0 или отсутствие — искать по всему тексту.
Пример-текст:
Name: Huber, Karl
Ort: 1234 Stadt
S/N: 173993783892.TEST
Пример:
%XMP_LineBtw("%TEXT","Name:",", ",0,1)
%XMP_LineBtw("%TEXT","Ort:","",0,0)
%XMP_LineBtw("%TEXT","S/N:",".test",0,0)
Вывод:
Huber
1234 Stadt
173993783892
|
%XMP_REIsMatch(Text, Search,
[StartPos], [IgnoreCase])
|
Ищет в "Text" "Search" с регулярным выражением (PCRE). Возвращает 1 если найдено, иначе 0.
"StartPos" — позиция начала поиска, 0 — с начала текста.
"IgnoreCase" = 1 — игнорировать регистр.
Пример:
%XMP_REIsMatch("abc","b")
%XMP_REIsMatch("abc","b",2)
%XMP_REIsMatch("abc","B",0,1)
Вывод:
1
0
1
|
%XMP_RERepl(Text, Search, New,
[IgnoreCase])
|
Ищет "Search" в "Text" с регулярным выражением (PCRE) и заменяет на "New".
"IgnoreCase" = 1 — игнорировать регистр.
Пример:
%XMP_RERepl("AbC AbC AbC","(b)","[$1]")
Вывод:
A[b]C A[b]C A[b]C
|
|
%XMP_ReX(Text, Pattern, [SubPatt])
|
Упрощённое макро RegExp.
"Text" — текст, "Pattern" — регулярное выражение, "SubPatt" — возвращаемый суб-паттерн. По умолчанию — первый.
Внимание: кавычки заменяются на 0x02. Для поиска кавычек используйте "\x02".
Пример:
%XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*")
%XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*","0")
%XMP_ReX("abc test TEXT abc",".*(test)(\s)(.*)\s.*",3)
Вывод:
test
abc test TEXT abc
TEXT
|
|
%XMP_StrAttach(Text, FileName)
|
Сохраняет "Text" во временный файл с указанным "FileName" и затем добавляет этот файл как вложение к текущему сообщению.
Если возникает ошибка, возвращается "0", иначе возвращается "1".
Временный файл после этого НЕ удаляется, так как иначе The Bat! не сможет его найти и добавить как вложение. Только при выгрузке плагина (закрытии The Bat!) все файлы, созданные этим макросом, будут удалены.
Пример:
%XMP_StrAttach("%TEXT","Originaltext.txt")
|
|
%XMP_StrC(Text)
|
Выводит "Text", заменяя специальные символы:
\\ -> Backslash
\n -> Перевод строки
\r -> Возврат каретки
\t -> Табуляция
\w -> \r\n
\cCHR -> символ с кодом 000–255, трёхзначный
\xHH -> hex код 00–FF, двухзначный
Пример:
%XMP_StrC("\c034Zeile1\c034\nZeile2\tTabulator\n\nZeile4")
--
%XMP_StrC("\x55\x56\x57\x0A\c034XYZ\c034")
Вывод:
"Zeile1"
Zeile2 Tabulator
Zeile4
--
|
%XMP_StrIns(OriginalText, Text,
Start/Alignment], [Length])
|
Вставляет "Text" в "OriginalText".
С "Start" задается начальная позиция текста, "Length" обозначает количество символов, которые будут перезаписаны в исходном тексте.
Стандартное значение "Start" — "1", а "Length" — "0".
Вместо позиции начала ("Start") можно использовать выравнивание, которое выравнивает "Text" внутри "OriginalText" и при этом перезаписывает его. Возможны следующие варианты выравнивания:
L -> по левому краю
R -> по правому краю
M -> по центру, при нечётном количестве символов текст будет смещен больше влево.
N -> по центру, при нечётном количестве символов текст будет смещен больше вправо.
Пример:
%XMP_StrIns("123456789","ABC")
%XMP_StrIns("123456789","ABC","R")
%XMP_StrIns("123456789","ABC","L")
%XMP_StrIns("123456789","ABC",4)
%XMP_StrIns("123456789","ABC",4,1)
%XMP_StrIns("123456789","ABC",4,999)
Вывод:
ABC123456789
123456ABC
ABC456789
123ABC456789
123ABC56789
123ABC
|
|
%XMP_StrItem(Text, Delimiter, Item)
|
Читает "Item" из "Text", разделённого указанным "Delimiter".
Пример:
%XMP_StrItem("123#ABC#XYZ","#",2)
Вывод:
ABC
|
|
%XMP_StrItem(Text, Delimiter)
|
Определяет количество элементов в "Text", разделённых "Delimiter".
Пример:
%XMP_StrItemCnt("123#ABC#XYZ","#")
Вывод:
3
|
|
%XMP_StrLeft(Text, Count)
|
Возвращает определённое "Count" количество символов из "Text", начиная с первого символа.
Пример:
%XMP_StrLeft("123456789",3)
Вывод:
123
|
|
%XMP_StrLen(Text)
|
Определяет длину указанного текста.
Пример:
%XMP_StrLen("ABCEDEF")
Вывод:
7
|
|
%XMP_StrLines(Text, [Start], [Count])
|
Читает из "Text" начиная с строки "Start" определённое "Count" количество строк и возвращает их.
Если "Start" или "Count" не указаны, предполагается одна строка. Вызов макроса только с текстом вернёт первую строку текста.
Пример:
%XMP_StrLines("%TEXT",2,2)
Вывод:
Строка2
Строка3
|
|
%XMP_StrLnCnt([Text])
|
Определяет количество строк в указанном "Text".
Если "Text" не указан, используется текст оригинального сообщения.
Пример:
%XMP_StrLnCnt
%XMP_StrLnCnt("")
%XMP_StrLnCnt("%_VAR")
Вывод:
25
0
3
|
|
%XMP_StrMid(Text, Start, [Count])
|
Возвращает определённое "Count" количество символов из "Text", начиная с позиции "Start".
Если "Count" не указан, возвращаются все символы после "Start".
Пример:
%XMP_StrMid("123456789",3,4)
%XMP_StrMid("123456789",3)
Вывод:
3456
3456789
|
|
%XMP_StrPos(Text, SearchText, [Case])
|
Определяет позицию первого вхождения "SearchText" в "Text".
Если "Case" = 1, регистр не учитывается.
Пример:
%XMP_StrPos("AbcABCabc","ABC")
%XMP_StrPos("AbcABCabc","ABC",1)
Вывод:
4
1
|
%XMP_StrRepl(Text, Search, New,
Case], [All])
|
Заменяет все вхождения "Search" в "Text" на "New".
Если "Case" = 1, регистр не учитывается.
Если "All" = 1, после замены проверяется, не появились ли новые совпадения. При этом учитывается "Case".
Внимание: При использовании "All" следите, чтобы не возникали бесконечные циклы, например:
"%XMP_StrRepl("XxXxXxXxXxXxXx","X","x",1,1)"!
Пример:
%XMP_StrRepl("AbcABCabc","ABC","Xyz")
%XMP_StrRepl("AbcABCabc","ABC","Xyz",1)
%XMP_StrRepl("XxXxXxXxXxXxXx","XX","x",1,1)
Вывод:
AbcXyzabc
XyzXyzXyz
x
|
|
%XMP_StrRev(Text)
|
Возвращает "Text" в обратном порядке.
Пример:
%XMP_StrRev("Hallo")
Вывод:
ollaH
|
|
%XMP_StrRight(Text, Count)
|
Возвращает определённое "Count" количество символов из "Text", начиная с конца.
Пример:
%XMP_StrRight("123456789",4)
Вывод:
6789
|
%XMP_StrTr(Text, Search, [Replace],
[Options])
|
Заменяет в "Text" все символы, указанные в "Search", на соответствующие символы в "Replace" по позиции.
Если "Replace" не указан или пустой, все символы из "Search" удаляются. (Соответствует опции "D".)
Параметры "Search" и "Replace" должны соответствовать %XMP_StrC. Можно использовать спецсимволы.
Возможные значения "Options":
D -> Удаляет все символы из "Search" в "Text". "Replace" игнорируется.
L -> регистр игнорируется.
Пример:
%XMP_StrTr("HALLO","loh","104")
%XMP_StrTr("HALLO","loh","104","L")
%XMP_StrTr("Hallo","HL")
%XMP_StrTr("HALLO","Hl","XXX","DL")
Вывод:
HALLO
4A110
allo
AO
|
%XMP_StrTrim(Text, [LeftRight],
[CharTypes])
|
Удаляет все пробелы и управляющие символы в начале и конце "Text". Также удаляется символ 160 (0xA0), который в HTML-письмах иногда используется вместо пробела.
Чтобы удалить пробелы только слева или справа, укажите "L" или "R" в "LeftRight".
Параметр "CharTypes" задаёт типы символов для удаления:
(пробел) -> удаляет все пробелы, управляющие символы и символ 160 (0xA0). Это значение по умолчанию.
A -> удаляет все заглавные буквы
a -> удаляет все строчные буквы
1 -> удаляет все цифры
! -> удаляет все знаки препинания и печатные спецсимволы
8 -> удаляет все 8-битные символы
S -> удаляет все национальные спецсимволы (от 0xBF)
Можно комбинировать, например "Aa 1" для букв, пробелов и цифр.
Пример:
|%XMP_StrTrim(" ABC ")|
|%XMP_StrTrim(" ABC ","L")|
|%XMP_StrTrim(" ABC ","R")|
%XMP_StrTrim("Сумма: 129,- Euro",""," Aa!")
%XMP_StrTrim("Сумма: 9,90 Euro",""," Aa!")
Вывод:
|ABC|
|ABC |
| ABC|
129
9,90
|
|
%XMP_StrWordCnt(Text)
|
Возвращает количество слов в "Text".
В качестве разделителей используются различные управляющие и знаки препинания: точка, запятая, точка с запятой, восклицательный знак, вопросительный знак, скобки и др.
Пример:
%XMP_StrWordCnt("Word1, Word-2!Word3.Word4 Word_5")
Вывод:
5
|
%XMP_StrWrap(Text, [Width],
[Alignment])
|
Переносит "Text" каждые 70 символов. Если указать "Width", перенос выполняется после указанной ширины.
В качестве символов переноса распознаются пробелы, табуляции и дефисы. Внутри двойных и одинарных кавычек перенос не выполняется.
Внутренний макрос %WRAPPED переносит только первый абзац текста. %XMP_StrWrap форматирует весь текст.
Третий параметр задаёт выравнивание текста. Возможные значения:
L -> по левому краю (по умолчанию)
R -> по правому краю
C -> по центру
J -> по ширине
Пример:
%XMP_StrWrap("%CLIPBOARD",35)
Вывод:
В начале каждой макро-описания
указан синтаксис макроса
Аргументы в квадратных скобках
можно опускать. В этом случае
используются стандартные значения.
Опускать можно только последние аргументы.
|
|
%XMP_UrlDec(URL)
|
Декодирует в "URL" спецсимволы, ранее закодированные %XMP_UrlEnc.
Пример:
%_TMP=#%XMP_UrlEnc("mailto:test@tester.com?subject=Test Subject")#%-
%_TMP
%XMP_UrlDec("%_TMP")%-
Вывод:
mailto%3Atest%40tester%2Ecom%3Fsubject%3DTest%20Subject
mailto:test@tester.com?subject=Test Subject
|
|
%XMP_UrlEnc(URL, [Type])
|
Кодирует в "URL" символы, недопустимые в URL. Можно использовать для "mailto:" ссылок.
Например, ссылка "mailto:test@tester.com?subject=Das ist ein Test" без кодирования выдаёт только "Das", а с кодированием "mailto:test@tester.com?subject=Das%20ist%20ein%20Test" правильно показывает весь заголовок.
Аргумент "Type" определяет способ кодирования:
& -> заменяет все & на "&", иначе используется шестнадцатеричный код
< или > -> заменяет < и > на "<" и ">", иначе на шестнадцатеричный код
+ -> заменяет пробелы на "+", иначе пробел кодируется как "%20"
Пример:
%XMP_UrlEnc("Test & Test")
%XMP_UrlEnc("Test & Test","&")
%XMP_UrlEnc("Test & Test","&<")
%XMP_UrlEnc("Test & Test",">&")
%XMP_UrlEnc("Test & Test","+&<")
Вывод:
Test%20%3Caaa%40bbb%2Ecom%3E%20%26%20Test
Test%20%3Caaa%40bbb%2Ecom%3E%20&%20Test
Test%20<aaa%40bbb%2Ecom>%20&%20Test
Test%20<aaa%40bbb%2Ecom>%20&%20Test
Test+<aaa%40bbb%2Ecom>+&+Test
|
|
%XMP_XtrEMLs([Text], [Delimiter])
|
Читает все e-mail адреса из "Text" и возвращает их, разделённые указанным "Delimiter".
Если "Text" не указан или пуст, используется текст сообщения. Если "Delimiter" не указан, используется перенос строки Windows (0x0D + 0x0A).
|
%XMP_XtrURLs([Text], [Delimiter],
[SearchText])
|
Читает все URL из "Text" и возвращает их, разделённые указанным "Delimiter".
Если "Text" не указан или пуст, используется текст сообщения. Если "Delimiter" не указан, используется перенос строки Windows (0x0D + 0x0A).
Аргумент "SearchText" задаёт текст внутри URL, по которому определяется длина URL. Найдя "SearchText", макрос ищет первый символ слева и справа от него, который не может быть в URL. По умолчанию "SearchText" = "https://". Можно указать другие значения, например "www." или "ritlabs.com".
|
|