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
):
%%
%
’
%a
Sun
или Вск
)
%A
Sunday
или Воскресенье
)
%b
Jan
или Янв
)
%B
January
или Январь
)
%c
WDay Mnt Day HH:MM:SS yyyy
(Mon Jan 10 04:11:54 2000
или Пнд Янв 10 04:11:54 2000
)
%C
00
—99
). 1992
⟹ 19
%d
01
—31
)
%D
%x
%e
%d
, но вместо ведущего нуля будет стоять пробел.
%h
%b
%H
00
—23
)
%I
01
—12
)
%j
001
—366
)
%k
%H
, но вместо ведущего нуля будет стоять пробел.
%l
%I
, но вместо ведущего нуля будет стоять пробел.
%L
Триггер, переключающий язык названий месяцев и дней недели — английский/локальный.
Far Manager запрашивает у системы 2 набора наименований:
LOCALE_USER_DEFAULT
)По умолчанию выставляются английские наименования.
%m
1
—12
)
%m0
%m
, но с ведущим нулём (01
—12
)
%mh
1
—C
)
%M
00
—59
)
%n
Подобно переводу строки \n
Внимание! В редакторе автоотступ не работает.
%p
AM
или PM
%r
%I:%M:%S %p
%R
%H:%M
%S
00
—59
)
%t
\t
’
%T
%X
%U
Воскресенье
(Sunday
) является первым днём недели (00
—53
)
%v
dd-mmm-yyyy
(mmm
— в верхнем регистре)
%V
ISO 8601
: Если неделя, содержащая 1 Января
, имеет ≥ 4 дней в течение нового года, тогда это неделя 1
; в противном случае это самая последняя нумерованная неделя прошлого года (52
или 53
)
%w
0
— Воскресенье
(Sunday
) (0
—6
)
%W
Понедельник
(Monday
) является первым днём недели (00
—53
)
%x
dd<sep>mm<sep>yyyy
(разделитель <sep>
зависит от локальных настроек; порядок дня, месяца и года зависит от локальных настроек)
%X
HH<sep>MM<sep>SS
(разделитель <sep>
зависит от локальных настроек)
%y
00
—99
)
%Y
19yy
—20yy
)
%z
UTC
в формате ISO 8601
%Z
В функции date
допускается применение следующих escape-последовательностей:
\"
"
’
\'
'
’
\\
\
’
\n
\n
’
\t
\t
’
\a
\b
\b
\f
\f
\v
\v
\N
, \NN
, \NNN
OEM
кодировки
\xNN
OEM
кодировки
Если аргумент 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
может быть комбинацией следующих значений:
0x0010000000000000
K
— для килобайтов, M
— для мегабайтов, G
— для гигабайтов, T
— для терабайтов, P
— для петабайтов, E
— для эксабайтов
0x0800000000000000
Interface/FormatNumberSeparators
из конфигурации (far:config
) или значения OS (LOCALE_STHOUSAND & LOCALE_SDECIMAL
), если FormatNumberSeparators
не указан.
0x0080000000000000
0,97 К
, 1,44 М
, 53,2 Г
.
0x0040000000000000
0.97K
)
0x0400000000000000
1024
использовать делитель 1000
.
0x0020000000000000
0
, 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
:
0
V
1
V
2
V
Если 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
позволяет уточнять поведение функции:
1
2
Для всех строковых функций: нумерация символов в строке начинается с 0
(см. mf.index()
, mf.rindex()
, mf.substr()
).