Справочник функций и процедур Delphi: Format

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

Format
Функция
Богатое форматирование чисел и текста в строке SysUtils unit
  
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;

Google  
 
Описание
Функция Format обеспечивает 'C' подобное форматирование множества простых типов данных в строке. Она обеспечивает очень точное управление по этому форматированию.

Параметр Formatting определяет, как массив Data Данных управляется в возвращенной строке.

Форматируемая cтрока может включать соединение обычных символов (которые передаются неизменными в строку результата), и символам форматирования данных. Такое форматирование лучше всего объясняется кодом примера.

В простых условиях каждые данные, форматирующие подстроку начинаются с % и заканчиваются индикатором типа данных:

d = Десятичное (целое число)
e = Научный
f = Установленный
g = Генерал
m = Деньги
n = Число (плавающее)
p = Указатель
s = Строка
u = Десятичное число без знака
x = Шестнадцатеричный

Общий формат форматирования каждой подстроки следующий:

%[Index:][-][Width][.Precision]Type

где квадратные скобки относятся к дополнительным параметрам, и :. - символы - литералы, первые 2 из которых используются, чтобы идентифицировать два из дополнительных параметров.

Версия 2 этой функции - для использования в пределах потоков. Вы должны заполнить запись FormatSettings перед вызовом запроса. Она берёт местную копию глобальной переменной, форматирующей переменные, которые делают подпрограмму потоко-безопасной.
Примечания
Различные опции форматирования, типа DecimalSeparator и CurrencyString используются для некоторых из этих опций форматирования. См. более определенные версии команд отображения данных, типа CurrToStrF для подробностей.
Похожие команды
CurrencyDecimals  Определяет число десятичных цифр в функции Format

CurrencyFormat  Определяет размещение строки валюты в функции показа валюты

CurrencyString  Строка валюты, используемая в функциях отображения валюты

CurrToStrF  Преобразует денежную величину в строку с форматированием

DecimalSeparator  Символ используемый для отображения десятичной точки

FloatToStrF  Преобразует значение с плавающей запятой в строку с форматированием

FormatCurr  Богатое форматирование значений валюты в строку

FormatDateTime  Богатое форматирование переменной TDateTime в строку

FormatFloat  Богатое форматирование числа с плавающей запятой в строку

NegCurrFormat  Определяет отображение отрицательного количества форматированной валюты

ThousandSeparator  Символ, используемый для отображения разделителя тысяч

 
Пример кода : Показ всех форматируемых типов данных
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>
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook