Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size

Format

Печать
Рейтинг пользователей: / 1
ХудшийЛучший 

Format

Описание

1 function Format ( Const Formatting : string; Const Data : array of const ) : string;
2 function Format ( Const Formatting : string; Const Data : array of const; FormatSettings : TFormatSettings ) : string;

Функция Format обеспечивает 'C' подобное форматирование множества простых типов данных в строке. Она обеспечивает очень точное управление по этому форматированию.
Параметр Formatting определяет, как массив Data Данных управляется в возвращенной строке.
Форматируемая cтрока может включать соединение обычных символов (которые передаются неизменными в строку результата), и символам форматирования данных. Такое форматирование лучше всего объясняется кодом примера.
В простых условиях каждые данные, форматирующие подстроку начинаются с % и заканчиваются индикатором типа данных:
d = Десятичное (целое число)
e = Научный
f = Установленный
g = Генерал
m = Деньги
n = Число (плавающее)
p = Указатель
s = Строка
u = Десятичное число без знака
x = Шестнадцатеричный
Общий формат форматирования каждой подстроки следующий:
%[Index:][-][Width][.Precision]Type
где квадратные скобки относятся к дополнительным параметрам, и :. - символы - литералы, первые 2 из которых используются, чтобы идентифицировать два из дополнительных параметров.
Версия 2 этой функции - для использования в пределах потоков. Вы должны заполнить запись FormatSettings перед вызовом запроса. Она берёт местную копию глобальной переменной, форматирующей переменные, которые делают подпрограмму потоко-безопасной.

Пример кода

Пример кода : Показ всех форматируемых типов данных

var
text : string;
begin
//
Только 1 элемент данных
ShowMessage(Format('%s', ['Hello']));
//
Соединение символьного текста и элемента данных
ShowMessage(Format('String = %s', ['Hello']));
ShowMessage('');
//
Примеры каждого из типов данных
ShowMessage(Format('Decimal          = %d', [-123]));
ShowMessage(Format('Exponent         = %e', [12345.678]));
ShowMessage(Format('Fixed            = %f', [12345.678]));
ShowMessage(Format('General          = %g', [12345.678]));
ShowMessage(Format('Number           = %n', [12345.678]));
ShowMessage(Format('Money            = %m', [12345.678]));
ShowMessage(Format('Pointer          = %p', [addr(text)]));
ShowMessage(Format('String           = %s', ['Hello']));
ShowMessage(Format('Unsigned decimal = %u', [123]));
ShowMessage(Format('Hexadecimal      = %x', [140]));
end;

Hello
String = Hello
Decimal = -123
Exponent = 1.23456780000000E+004
Fixed = 12345.68
General = 12345.678
Number = 12,345,68
Money = ?12,345.68
Pointer = 0069FC90
String = Hello
Unsigned decimal = 123
Hexadecimal = 8C

Пример кода : Используя индекс, ширину и значения точности

begin
// Значение ширины диктует размер вывода
// с пробелом, добавляющемся слева
// Обратите внимание <>, символы добавляются, чтобы показать форматирование
ShowMessage(Format('Padded decimal    = <%7d>', [1234]));
// С '-' оператором, данные выравниваются влево
ShowMessage(Format('Justified decimal = <%-7d>', [1234]));
// Значение точности вынуждает 0 дополнений к желательному размеру
ShowMessage(Format('0 padded decimal  = <%.6d>', [1234]));
// Комбинация ширины и точности
// Обратите внимание, что значение ширины предшествует значению точности
ShowMessage(Format('Width + precision = <%8.6d>', [1234]));
// Индексное значение позволяет следующему значению в массиве
// данных быть измененным
ShowMessage(Format('Reposition after 3 strings = %s %s %s %1:s %s',
['Zero', 'One', 'Two', 'Three']));
// Обратите внимание, испытание показало, что * для параметра ширины
// может привести к ECONVERTERROR.
ShowMessage(Format('In line           = <%10.4d>', [1234]));
ShowMessage(Format('Part data driven  = <%*.4d>', [10, 1234]));
ShowMessage(Format('Data driven       = <%*.*d>', [10, 4, 1234]));
end;

Padded decimal = < 1234>
Justified decimal = <1234 >
0 padded decimal = <001234>
Width + precision = < 001234>
Reposition after 3 strings = Zero One Two One Two
In line = < 1234>
Part data driven = < 1234>
Data driven = < 1234>

Примечание

Различные опции форматирования, типа DecimalSeparator и CurrencyString используются для некоторых из этих опций форматирования. См. более определенные версии команд отображения данных, типа CurrToStrF для подробностей.

Авторизация



Счетчики