StrFormat
StrFormat (<format>, [<param1> [, <param2> [, .. <paramN>]]) StrFormat <VAR> <specifier> [<param1> [ <param2> [ .. <paramN>]]
Возвращает отформатированную строку. Аналогична функции Format в Delphi или sprintf в C.
Параметры
format | Строка формата. Может содержать спецификаторы, произвольный текст и эскейп-последовательности. Подробнее см. ниже. |
param1..paramN | Опционально. Параметры, значениями которых будут заменены спецификаторы в строке формата. |
Спецификаторы
Спецификаторы начинаются с символа %, могут опционально содержать флаги, ширину и точность значения, и заканчиваются символом, определяющим тип спецификатора. Если необходимо ввести символ % в строке, его необходимо задвоить %%.
%[флаги][ширина][.точность]тип %[-][0][width][.precision]d|u|f|x|X|s
Типы
d | Целое знаковое число. |
u | Целое беззнаковое число. |
f | Число с плавающей точкой. |
x | Шестнадцатеричное число (в нижнем регистре). |
X | Шестнадцатеричное число (в верхнем регистре). |
s | Строка. |
Флаги
- | Выравнивание по левому краю. |
0 | Заполнение нулями вместо пробелов. При одновременном указании 0 и -, 0 игнорируется. |
Ширина
Ширина определяет минимальную ширину строки. Если ширина значения параметра меньше этого значения, то недостающие символы будут заполнены пробелами (или нулями, в зависимости от флага).
Точность
Для типов d, u, x, X этот параметр не применяется, число не обрезается. Для типа f указывает число знаков после точки. Для типа s строка будет урезана до заданного значения.
Эскейп-последовательности
Поддерживаются следующие последовательности: \n (auLF), \r (auCR), \t (auTAB). Если нужно ввести «\», то его необходимо задвоить: «\\».
Возвращаемое значение
В случае успеха функция возвращает строку, в котором спецификаторы заменены соответствующими значениям параметров. При недостатке или отсутствии параметров, лишние спецификаторы будут заменены пустыми строками. Если число параметров больше числа спецификаторов, лишние параметры будут проигнорированы.
Примеры
StrFormat("Value=%d", 123) # --> "Value=123" StrFormat("%f", 123.456789) # --> "123.456789" StrFormat("%.2f", 123.456789) # --> "123.45" StrFormat("%10.2f", 123.456789) # --> " 123.45" StrFormat("%-10.2f", 123.456789) # --> "123.45 " StrFormat("%X", 123456) # --> "1E240" StrFormat("%08X", 123456) # --> "0001E240" StrFormat("test %s", "testing") # --> "test testing" StrFormat("%10.4s", "testing") # --> " test" StrFormat("text\ttext") # --> "text text"