Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
ВнизФункция Format Найти похожие ветки
← →
orlov (2002-10-18 06:55) [0]Неподскажите ,как работать с Format у меня такая тема открыть файл нужно в шеснадцатиричном виде;
orlov2@aport.ru
Заранее спасибо!!!
← →
Separator (2002-10-18 07:00) [1]Модуль SysUtils
Назначение - форматирование текста с помощью строки описания формата.
Описание
Функция Format возвращает отформатированную строку, представляющую собой результат применения строки описания формата Format к открытому массиву аргументов Args. Например, оператор
s:=Format("Задано %d параметров из %d ", [N1, N2]);
при переменных N1=5 и N2=10 присвоит переменной s значение "Задано 5 параметров из 10".
Синтаксис строк описания формата см. в разделе "Строка описания формата". Если формат ошибочный или не соответствует типам аргументов, генерируется исключение EConvertError.
function Format(const Format: string; const Args: array of const): string;
← →
Separator (2002-10-18 07:01) [2]Строка описания формата определяет способ форматирования данных и используется в таких функциях, как Format, FormatBuf, FmtStr, StrFmt, StrLFmt конструкторах исключений и др.
Строка описания формата содержит два типа объектов: обычные символы, которые непосредственно копируются в форматированную строку, и спецификаторы формата, которые определяют формат записи в результирующую строку списка аргументов.
Спецификатор формата имеет вид
%[<индекс>:][-][<ширина>][.<точность>]<тип>
Спецификатор формата начинается с символа "%". Затем без пробелов следует ряд необязательных полей:
[<индекс>:] Определяет индекс (номер) аргумента в заданном списке, к которому относится данный спецификатор формата.
[-] Индикатор выравнивания влево.
[<ширина>] Устанавливает ширину поля.
[<точность>] Спецификатор точности.
Затем так же без пробела размещается единственное обязательное поле <тип>, определяющее, как и в каком формате будет интерпретироваться аргумент.
Ниже приводится таблица спецификаторов типа.
d Десятичное целое. Значение преобразуется в строку десятичных цифр. Если спецификатор формата содержит поле точности, то результирующая строка должна содержать количество цифр, не менее указанного значения. Если форматируемое значение содержит меньше цифр, оно дополняется слева нулями.
e Научный формат значения с плавающей запятой. Значение преобразуется в формат вида "-d.ddd...E+ddd", где d означает цифру. Иначе говоря, число представляется в виде -d.ddd...10+ddd. Отрицательные числа начинаются со знака "-". Перед десятичной точкой всегда имеется одна цифра. Общее число цифр (включая цифру перед точкой) равно числу, указанному спецификатором точности. По умолчанию (в отсутствие спецификатора точности) точность равна 15. После символа "E" следует обязательно знак "+" или "-" и не менее трех цифр.
f Формат с фиксированной точкой значения с плавающей запятой. Значение преобразуется в формат вида "-ddd.ddd...". Отрицательные числа начинаются со знака "-". Число цифр после десятичной точки равно числу, указанному спецификатором точности. По умолчанию (в отсутствие спецификатора точности) точность равна 2.
g Обобщенный формат чисел с плавающей запятой. Значение преобразуется в формат научный или с фиксированной точкой, в зависимости от того, какой из них дает более короткую запись. В научном формате общее число цифр (включая цифру перед точкой) равно числу, указанному спецификатором точности. По умолчанию (в отсутствие спецификатора точности) точность равна 15. Заключающие нули после десятичной точки в результирующей строке отбрасываются, а сама десятичная точка появляется, только если это необходимо. Результирующая строка использует формат с фиксированной точкой, если число цифр слева от десятичной точки не превышает заданной точности и если значение числа не меньше 0.00001. В остальных случаях используется научный формат.Обобщенный формат чисел с плавающей запятой наиболее удобен в большинстве случаев.
n Формат, подобный формату с фиксированной точкой для чисел с плавающей запятой, но отличающийся наличием в результирующей строке разделителей тысяч. Иными словами, число представляется в форме "-d,ddd,ddd.ddd...".
← →
Separator (2002-10-18 07:01) [3]m Монетарный формат чисел с плавающей запятой. Значение преобразуется в строку, представляющую собой денежную сумму. Преобразование определяется глобальными переменными CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator и CurrencyDecimals, которые инициализируются форматом Currency Format в разделе International Контрольной панели (Control Panel) Windows. Если задан спецификатор точности, то он заменяет значение, содержащееся в глобальной переменной CurrencyDecimals.
p Формат отображения указателей. Значение преобразуется в строку вида "XXXX:YYYY", где XXXX and YYYY - сегмент и смещение указателя, выражаемые четырьмя шестнадцатеричными цифрами.
s Формат строки для аргументов вида символ, строка или строка типа PChar. Строка или символ просто вставляются в результирующую строку. Если задан спецификатор точности, то он определяет максимальное число вставляемых символов. Если вставляемая строка длиннее, она усекается.
x Шестнадцатеричный формат целых чисел. Значение аргумента преобразуется в строку шестнадцатеричных цифр. Если задан спецификатор точности, то он указывает минимальное число цифр в строке; если строка оказывается короче, она дополняется слева нулями.
Все спецификаторы типа могут записываться как строчными, так и прописными буквами.
Спецификатор индекса задает порядковый номер аргумента в списке, к которому применяется преобразование. Индекс первого аргумента считается равным 0. Применение индексов позволяет пропускать какие-то аргументы в списке или форматировать один и тот же аргумент несколько раз.
Спецификатор ширины задает минимальное число символов результата данного преобразования. Если результирующая строка короче заданной ширины, то лишние позиции заполняются пробелами. По умолчанию используется выравнивание вправо и пробелы ставятся перед преобразованным значением. Но если указан индикатор левого выравнивания (символ "-" перед спецификатором ширины), то пробелы вносятся после преобразованного значения.
Действие спецификатора точности на различные форматы уже рассмотрено выше.
Во всех форматах чисел с плавающей запятой символы, используемые для отделения целой части числа от дробной и для разделения тысяч, берутся из глобальных переменных DecimalSeparator и ThousandSeparator.
← →
Separator (2002-10-18 07:05) [4]Формат Результат
Format("Задано %d и %d", [5,2]) Задано 5 и 2
Format("%d = %0:x",[30]) 30 = 1E
В предыдущем примере использование индекса позволило представить один и тот же аргумент в десятичном и шестнадцатеричном видах.
Format("%e %0:f %0:n %0:g",[10000.]) 1,00000000000000E+004 10000,00 10 000,00 10000
Format("%e %0:f %0:g",[0.0001]) 1,00000000000000E-004 0,00 0.0001
Два предыдущих примера показывают, что применение формата e с точностью по умолчанию дает очень неудобную форму представления. Второй из примеров показывает, что применение формата f с точностью по умолчанию (2) к числам, меньшим 1, может отсечь значащие цифры. Наиболее удобен формат g.
Format("%m",[10000.]) 10 000р.
← →
perov (2002-10-18 07:07) [5]var
f:file of Byte;
r:Byte;
begin
AssignFile(f, "myfile.txt");
Reset(f);
while not eof(f) do begin
read(f, r);
Write(format("%x", [r]));
end;
closefile(f);
end.
а еще лучше на слове format нажать F1
← →
Qpwoe! (2002-10-18 07:08) [6]юююююююююююю
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c