N=mf.asc(S)S.
S=mf.chr(N)N.
N=mf.atoi(S[,Radix])Конвертирует строку S в число.
Значение Radix определяет основание, которое будет использоваться при преобразовании строки S. Допустимые значения Radix от 2 до 36.
Если параметр Radix не указан или равен 0, то функция попытается его определить автоматически.
S=mf.itoa(N[,Radix])Конвертирует целое число N в строку.
Значение Radix определяет основание, которое должно использоваться при преобразовании числа N. Допустимые значения Radix от 2 до 36.
Если параметр Radix не указан, то подразумевается основание 10.
S=mf.string(V)V в строку.
S=mf.date([format])Возвращает текущую дату/время по формату format. Этот формат подобен тому, что выдаёт утилита date (Unix).
Функция поддерживает следующую спецификацию формата даты (подобен формату функции strftime):
%%%’
%aSun или Вск)
%ASunday или Воскресенье)
%bJan или Янв)
%BJanuary или Январь)
%cWDay Mnt Day HH:MM:SS yyyy (Mon Jan 10 04:11:54 2000 или Пнд Янв 10 04:11:54 2000)
%C00—99). 1992 ⟹ 19
%d01—31)
%D%x
%e%d, но вместо ведущего нуля будет стоять пробел.
%h%b
%H00—23)
%I01—12)
%j001—366)
%k%H, но вместо ведущего нуля будет стоять пробел.
%l%I, но вместо ведущего нуля будет стоять пробел.
%LТриггер, переключающий язык названий месяцев и дней недели — английский/локальный.
Far Manager запрашивает у системы 2 набора наименований:
LOCALE_USER_DEFAULT)По умолчанию выставляются английские наименования.
%m1—12)
%m0%m, но с ведущим нулём (01—12)
%mh1—C)
%M00—59)
%nПодобно переводу строки \n
Внимание! В редакторе автоотступ не работает.
%pAM или PM
%r%I:%M:%S %p
%R%H:%M
%S00—59)
%t\t’
%T%X
%UВоскресенье (Sunday) является первым днём недели (00—53)
%vdd-mmm-yyyy (mmm — в верхнем регистре)
%VISO 8601: Если неделя, содержащая 1 Января, имеет ≥ 4 дней в течение нового года, тогда это неделя 1; в противном случае это самая последняя нумерованная неделя прошлого года (52 или 53)
%w0 — Воскресенье (Sunday) (0—6)
%WПонедельник (Monday) является первым днём недели (00—53)
%xdd<sep>mm<sep>yyyy (разделитель <sep> зависит от локальных настроек; порядок дня, месяца и года зависит от локальных настроек)
%XHH<sep>MM<sep>SS (разделитель <sep> зависит от локальных настроек)
%y00—99)
%Y19yy—20yy)
%zUTC в формате ISO 8601
%ZВ функции date допускается применение следующих escape-последовательностей:
\""’
\''’
\\\’
\n\n’
\t\t’
\a\b\b
\f\f
\v\v
\N, \NN, \NNNOEM кодировки
\xNNOEM кодировки
Если аргумент format не указан, то Far Manager будет использовать форматную строку "%a %b %d %H:%M:%S %Z %Y" (см.)
N=mf.index(S1,S2[,CaseSensitive])Если подстрока S2 содержится в строке S1, то возвращается её позиция, иначе -1.
Необязательный параметр CaseSensitive задаёт режим сравнения:
0 (по умолчанию) — без учёта регистра,1 — с учётом регистра.N=mf.rindex(S1,S2[,CaseSensitive])Если подстрока S2 содержится в строке S1, то возвращается её позиция, иначе -1.
Поиск ведётся от конца строки S1.
Необязательный параметр CaseSensitive задаёт режим сравнения:
0 (по умолчанию) — без учёта регистра,1 — с учётом регистра.S=mf.lcase(S)S в нижний регистр.
S=mf.ucase(S)S в верхний регистр.
N=mf.len(S)S.
S=mf.size2str(Size,Flags[,Width])Функция форматирует число Size (например, размера файла) по заданным условиям, указанным в Flags, шириной Width.
Параметр Flags может быть комбинацией следующих значений:
0x0010000000000000K — для килобайтов, M — для мегабайтов, G — для гигабайтов, T — для терабайтов, P — для петабайтов, E — для эксабайтов
0x0800000000000000Interface/FormatNumberSeparators из конфигурации (far:config) или значения OS (LOCALE_STHOUSAND & LOCALE_SDECIMAL), если FormatNumberSeparators не указан.
0x00800000000000000,97 К, 1,44 М, 53,2 Г.
0x00400000000000000.97K)
0x04000000000000001024 использовать делитель 1000.
0x00200000000000000, 1, 2 или 3 (K,M,G,T).
Например, 0x0020000000000001 означает “размер как минимум в мегабайтах”.
Если Width не указан или равен 0, то подразумевается — “сколько получится”. Отрицательное значение ширины позволяет выравнивать слева:
mf.size2str(123,0, 5)' 123'
mf.size2str(123,0,-5)'123 '
S=mf.strwrap(Text,Width[,Break[,Flags]])Форматирует (с выравниванием влево) исходный текст Text по заданной ширине Width, используя разделительную строку Break.
Если Flags равен 0x1, то строка всегда сворачивается по заданной ширине, даже если есть слово, которое больше заданной ширины (в этом случае то оно будет разрезано на части).
Если флаг не указан или не равен 0x1 и есть длинное слово, то такое слово не будет разрезано и займет ширину больше чем указано в Width.
Примеры:
mf.strwrap("Пример строки, которая будет разбита на несколько строк по ширине в 7 символов.",7) +-------+
|Пример
|строки,
|которая
|будет
|разбита
|на
>|несколько
|строк
|по
|ширине
|в 7
>|символов.
+-------+
mf.strwrap("Пример строки, которая будет разбита на несколько строк по ширине в 7 символов.",7,nil,1) 1234567
+-------+
|Пример
|строки,
|которая
|будет
|разбита
|на
|несколь
|ко
|строк
|по
|ширине
|в 7
|символо
|в.
+-------+
mf.strwrap("Эта строка содержит оооооооооооооччччччччеееень длинное слово",9,nil,0x1) 123456789
+---------+
|Эта
|строка
|содержит
|ооооооооо
|ооооччччч
|чччеееень
|длинное
|слово
+---------+
S=mf.strpad(V,Size[,Fill[,Op]])Функция возвращает строку V, дополненную до заданной длины Size строкой Fill (по умолчанию пробелами).
Способ дополнения зависит от параметра Op:
0V
1V
2V
Если Size меньше или равна длине V либо опущена, то дополнения не происходит (возвращается V).
Если разность Size и длины V не делится без остатка на длину Fill, дополняющая строка обрезается справа.
Примеры:
mf.strpad("Foo",10,"*",2)'***Foo****'
mf.strpad("",10,"-*-",2)'-*--*--*--'
mf.strpad(,10,"-*-")'-*--*--*--'
mf.strpad("Foo",10)'Foo '
mf.strpad("Foo",10,"-")'Foo-------'
mf.strpad("Foo",10,nil,1)' Foo'
mf.strpad("Foo",10,nil,2)' Foo '
mf.strpad("Foo",10,"1234567890",2)'123Foo1234'
S=mf.substr(V,start[,length])Возвращает подстроку из выражения V начиная с позиции start длиной length.
Если start ≥ 0, то вернётся подстрока, начиная с позиции start от начала строки.
Если start < 0, то вернётся подстрока, начиная с позиции start от конца строки.
Если length > 0, то возвращаемая подстрока будет состоять максимум из length символов исходной строки начиная с позиции start.
Если length < 0, то в возвращаемой подстроке будет отсутствовать length символов от конца исходной строки, при том, что она будет начинаться с позиции start.
Если length = 0 или не указан, то возвращается подстрока от start до конца строки.
Примеры
mf.substr("abcdef", 1)bcdef”
mf.substr("abcdef", 1, 3)bcd”
mf.substr("abcdef", 0, 4)abcd”
mf.substr("abcdef", 0, 8)abcdef”
mf.substr("abcdef", -1)f”
mf.substr("abcdef", -2)ef”
mf.substr("abcdef", -3, 1)d”
mf.substr("abcdef", 0, -1)abcde”
mf.substr("abcdef", 2, -1)cde”
mf.substr("abcdef", 4, -4)""
mf.substr("abcdef", -3, -1)de”
Result=mf.replace(Str,Find,Replace[,Cnt[,CaseSensitive]])В строке Str заменить подстроку Find на подстроку Replace Cnt раз.
Если параметр Cnt меньше или равен 0, либо опущен, то будут заменены все вхождения Find.
Возвращается результат замены.
Необязательный параметр CaseSensitive задаёт режим сравнения:
0 (по умолчанию) — без учёта регистра,1 — с учётом регистра.Замечания:
Find — пустая строка, то возвращается Str без преобразований;Replace — пустая строка, то возвращается копия Str, в которой удалены все подстроки Find;S=mf.trim(V[,N])V снаружи (N=0 или не указан), слева (N=1) или справа (N=2).
S=mf.xlat(S[,Flags])Возвращает транслитерируемую строку S.
Функция подобна макрокоманде Keys("XLat"), но используется в выражениях.
Необязательный аргумент Flags позволяет уточнять поведение функции:
12Для всех строковых функций: нумерация символов в строке начинается с 0 (см. mf.index(), mf.rindex(), mf.substr()).