Функція Format в Delphi – розширене форматування чисел і тексту в рядку.
SysUtils unit
- function Format ( Const Formatting : string; Const Data : array of const ) : string;
- function Format ( Const Formatting : string; Const Data : array of const; FormatSettings : TFormatSettings ) : string;
Функція Format забезпечує 'C' подібне форматування безлічі простих типів даних у рядку. Вона забезпечує дуже точне керування по цьому форматуванні.
Параметр Formatting визначає, як масив Data Даних керується у поверненому рядку.
Форматований рядок може включати з'єднання звичайних символів (які передаються незмінними в рядок результату), і символів форматування даних. Таке форматування краще пояснюється кодом прикладу.
У простих умовах кожні дані, що форматують підрядок, починаються з % і закінчуються індикатором типу даних:
- d = Десяткове (ціле число)
- e = Науковий
- f = Встановлений (фіксований)
- g = Загальний
- m = Грошовий
- n = Число (плаваюче)
- p = Покажчик
- s = Рядок
- u = Десяткове число без знака
- x = Шістнадцятковий
Загальний формат форматування кожного підрядку наступний:
%[Index:][-][Width][.Precision]Type
де квадратні дужки відносяться до додаткових параметрів, та :. - символи - літерали, перші два з яких використовуються, щоб ідентифікувати два з додаткових параметрів.
Версія 2 цієї функції – для використання у межах потоків. Перед викликом запиту необхідно заповнити запис FormatSettings. Вона бере місцеву копію глобальної змінної, яка форматує змінні, які роблять підпрограму потокобезпечною.
Примітка.
Різні опції форматування, такі як DecimalSeparator та CurrencyString, використовуються для деяких з цих опцій форматування. Див. конкретні версії команд відображення даних типу CurrToStrF для подробиць.
Функція Format: Показ усіх форматованих типів даних
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
Функція Format: Використовуючи індекс, ширину та значення точності
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>
Подібні функції, процедури та команди
CurrencyDecimals — визначає число десяткових цифр у функції Format.
CurrencyFormat — визначає розміщення рядка валюти у функції показу валюти.
CurrencyString — рядок валюти, що використовується у функціях відображення валюти.
CurrToStrF — перетворює грошову величину на рядок з форматуванням.
DecimalSeparator — символ, який використовується для відображення десяткової точки.
FloatToStrF — перетворює значення з плаваючою комою в рядок з форматуванням.
FormatCurr — розширене форматування значень валюти у рядок.
FormatDateTime — розширене форматування змінної TDateTime у рядок.
FormatFloat — розширене форматування числа з плаваючою комою в рядок.
NegCurrFormat — визначає відображення негативної кількості форматованої валюти.
ThousandSeparator — символ, який використовується для відображення роздільника тисяч.