Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-92783
d-coder
2002-09-14 21:52
2002.10.28
Проблемы с записью/чтением текстовых файлов!!!!!!!!


6-92628
INCOGNITO
2002-08-05 03:10
2002.10.28
FTP... Закачка файлов


3-92330
Hirara
2002-10-04 22:29
2002.10.28
Поле типа Time


7-92762
Metallica
2002-08-21 13:17
2002.10.28
->>> Как сделать активным процесс, зная его хэндл.


1-92570
3d
2002-10-16 20:58
2002.10.28
Народ, нужна помощь с NMSMTP.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский