Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть II . Язык Object Pascal / Типы данных /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Строки - Программирование от RIN.RU
Строки



Типы String и ShortString


Несмотря на разницу во внутреннем представлении, короткие строки ShortString и длинные строки string имеют для программиста одинаковые свойства.


Текущую длину строки можно получить с помощью функции Length. Например, следующий оператор уничтожает все ведомые (хвостовые) пробелы:


while (Length(stS) о 0) and (stS[Length(stS)] = ' ' ) do
SetLentgh(stS, Length (stS) - 1);


В этом примере стандартная процедура setLength устанавливает новую длину строки. К строкам можно применять операцию "+" -сцепление, например:


stS := 'а' + 'b'; // stS содержит "ab"
stS := stS + ' с '; // stS содержит "abc"


Если длина сцепленной строки превысит максимально допустимую длину N короткой строки, то "лишние" символы отбрасываются. Следующая программа, например, выведет символ "I":


Procedure TfmExamlpe.bbRunClick(Sender: TObject);
var
ssS: String[1];
begin
ssS := '123';
IbOutput := ssS;
end;


Операции отношения =, <>, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением #о.


Следующие операции отношения дадут значение True:


'''' < '.'


'А' > '1'


'Object' < ' Object Pascal'


'Пас' > 'Pasc al'


Все остальные действия над строками и символами реализуются с помощью описываемых ниже стандартных процедур и функций (в квадратных скобках указываются необязательные параметры).


Таблица 7.7. Процедуры и функции для работы со строками
Function AnsiLowerCase(const S: String): String;Возвращает исходную строку S, в которой все заглавные буквы заменены на строчные в соответствии с национальной кодировкой Windows (т. е. с учетом кириллицы)
Function AnsiUpperCase(const S: String): String;Возвращает исходную строку s, в которой все строчные буквы заменены на заглавные в соответствии с национальной кодировкой Windows
Function Concat(Sl [, S2, ..., SN]: String): String;Возвращает строку, представляющую собой сцепление строк-параметров S1, S2, ... , SN
Function Copy(St: String; Index, Count: Integer): String;Копирует из строки St count символов, начиная с символа с номером Index
Procedure Delete(St: String;
Index, Count:" Integers-
Удаляет count символов из строки St, начиная с символа с номером index
Procedure Insert(SubSt: String; St, Index: Integer);Вставляет подстроку SubSt в строку St, начиная с символа с номером Index
Function Length(St: String): Integer;Возвращает текущую длину строки St
Function LowerCase(const S:String): String;Возвращает исходную строку S, в которой все латинские заглавные буквы заменены на строчные
procedure OleStrToStrVar(Source: PWideChar; var Dest:String) ;Копирует "широкую" (двухбайтную) строку в обычную строку Object Pascal
Function Pos(SubSt, St:String): Integer;Отыскивает в строке St первое вхождение подстроки SubSt и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается ноль
Procedure SetLength(St:String; NewLength: Integer);Устанавливает новую (меньшую) длину NewLength строки St. если NewLength больше текущей длины строки, обращение к SetLength игнорируется
function StringOfChar(Ch:Char; Count: Integer):String;Создает строку, состоящую из Count раз повторенного символа ch 
function StringToOleStr(const Source: String):PWideChar;Копирует обычную строку в двухбайтную 
function StringToWideChar(const Source: String; Dest:PWideChar; DestSize: Integer) : PWideChar;Преобразует обычную строку в строку с символами UNICODE
Function Uppercase(const S:String): String;Возвращает исходную строку S, в которой все строчные латинские буквы заменены на заглавные

Подпрограммы преобразования строк в другие типы

Function StrToCurr(St: String): Currency;Преобразует символы строки St в целое число типа Currency. Строка не должна содержать ведущих или ведомых пробелов
Function StrToDate(St: String): TDateTime;Преобразует символы строки St в дату. Строка должна содержать два или три числа, разделенных правильным для Windows разделителем даты (в русифицированной версии таким разделителем является "."). Первое число - правильный день, второе - правильный месяц. Если указано третье число, оно должно задавать год в формате XX или ХХХХ. Если символы года отсутствуют, дата дополняется текущим годом. Например: DateToStr(StrToDate('28.06')) даст строку '28.06.99' (см. ниже пояснения)
Function StrToDateTime(St:String): TDateTime;Преобразует символы строки St в дату и время. Строка должна содержать правильную дату (см. StrToDate) и правильное время (см. StrToTime), разделенные пробелом, например: StrToDateTime('28.06 18:23')
Function StrToFloat(St:String): ExtendedПреобразует символы строки St в вещественное число. Строка не должна содержать ведущих или ведомых пробелов
Function StrToInt(St:String): Integer;Преобразует символы строки St в целое число. Строка не должна содержать ведущих или ведомых пробелов
Function StrToIntDef(St:String; Default: Integer):Integer;Преобразует символы строки St в целое число.
Если строка не содержит правильного представления целого числа, возвращается значение Default
Function StrToIntRange(St:String; Min, Max: Longint):Lomgint;Преобразует символы строки St в целое число и возбуждает исключение ERangeError, если число выходит из заданного диапазона Min.. .мах
Function StrToTime(St:String): TDateTime;Преобразует символы строки St во время.
Строка должна содержать два или три числа, разделенных правильным для Windows раздели телем времени (для русифицированной версии таким разделителем является ":"). Числа задают часы, минуты и, возможно, секунды. За послед ним числом через пробел могут следовать символы "am" или "рm", указывающие на 12- часовой формат времени
Procedure Val(St: String; var
X; Code: Integer);
Преобразует строку символов St во внутреннее представление целой или вещественной переменной х, которое определяется типом этой переменной. Параметр Code содержит ноль, если преобразование прошло успешно, и тогда в х помещается результат преобразования, в противном случае он содержит номер позиции в строке St, где обнаружен ошибочный символ, и в этом случае содержимое х не меняется. В строке St могут быть ведущие и/или ведомые пробелы. Если St содержит символьное представление вещественного числа, разделителем целой и дробной частей должна быть точка независимо от того, каким символом этот разделитель указан в Windows

Подпрограммы обратного преобразования

Function DateTimeToStr(Value:
TDateTime): String; Procedure DateTime-ToString(var St: String; Format:
String;- Value: TData-Time);
Преобразует дату и время из параметра в строку символов Преобразует дату и время из параметра value в строку St в соответствии со спецификаторами параметра Format (см. пояснения ниже)
Function DateToStr(Value: TDateTime): String;Преобразует дату из параметра value в строку символов
Function FloatToStr(Value: Extended): String;Преобразует вещественное значение value в строку символов.
Function FloatToStrF(Value: Extended; Format: TFloatPor-mat; Precision, Digits: Integer) : String;Преобразует вещественное значение Value в строку символов с учетом формата Format и параметров precision и Digits (см. пояснения ниже).
Function Format(const Format: String; const Args: array of const): Strings;Преобразует произвольное количество аргументов открытого массива Args в строку в соответствии с форматом Format (см. пояснения ниже)
Function FormatDateTime (Format: String; Value:.TDateTime): String;Преобразует дату и время из параметра value в строку символов в соответствии со спецификаторами параметра Format (см. пояснения ниже)
Function FormatFloat(Format:String; Value: Extended): String;Преобразует вещественное значение value в строку символов с учетом спецификаторов формата Format (см. пояснения ниже)
function IntToHex(Value: Integer; Digits: Integer):Strings;Преобразует целое число Value в строку символьного представления шестнадцатеричного формата: Digits - минимальное количество символов в строке
Function IntToStr(Value: Integer) : String;Преобразует целое значение Value в строку символов
Procedure Str(X [:Width[:Decimals]]; var St:String) ;Преобразует число х любого вещественного илицелого типов в строку символов St; параметры width и Decimals, если они присутствуют, задают формат преобразования: width определяет общую ширину поля, выделенного под соответ ствующее символьное представление вещественного или целого числа х, a Decimals - количество символов в дробной части (этот параметр имеет смысл только в том случае, когда х -вещественное число)
Function TimeToStr(Value: TDateTime): String;Преобразует время из параметра Value в строку символов



При преобразовании с помощью функций StrToxxx строка может содержать недопустимые для типа ххх символы. В этом случае возбуждается исключительная ситуация EConvertError. При обратных преобразованиях xxxToStr формат получаемой строки зависит от установленных в Windows системных параметров: разделителей даты, времени, целой и дробной частей вещественного числа.


Примечание

Обычно разделителем групп разрядов в русской языке принято считать пробел. Однако в русифицированном варианте Windows для этих целей на самом деле используется, не пробел, а символ-#160, внешне похожий на пробел Убедиться: в, этом можно с помощью такой несложной программы:


procedure TfmExample.bbRunClick (Sender : TObject) ;
var S: String;
begin
S:=FloatToStrF(1000,ffNumber,4,0);
EdOutput.Yext:=IntToStr(Ord(S[2]));
end;


Если вы действительно хотите использовать пробел, его нужно явно указать в окошке. Разделитель: групп разрядов (Пуск.| Настройка | Панель управления | Язык и стандарты | Числа)




В Delphi 4...6 изменена функция StrToDate для того, чтобы упростить ввод двух цифр года с учетом смены столетия. С этой целью в модуле system введена глобальная переменная TwoDigitYearCenturywindow, которая определяет цифровой рубеж столетия. Если две цифры года больше или равны значению этой переменной, цифры года относятся к текущему столетию, если меньше - переносятся в следующее. Пусть, например, TwoDigitYearCenturywindow содержит значение 50. Тогда любые две цифры года в диапазоне 00..49 дополняются базой 2000 (2000, 2001,...,2049), в то время как цифры в диапазоне 50..99 дополняются базой 1900 (1950, 1951,...,1999). Такой прием позволяет в известной мере смягчить проблему двухцифровых годов на рубеже столетия, однако полным ее решением будет, разумеется переход на четырехцифровое представление года. По умолчанию TwoDigitYearCenturywindow имеет значение 0, и поэтому любые две цифры года дополняются базой 1900.


Используемая в процедуре DateTimeToString и в функции FormatDateTime строка Format может содержать такие символы-спецификаторы (в примерах показаны строки для времени 19 часов 45 минут и даты 8 июня 1999 года):


Таблица 7.8. Спецификаторы формата даты/времени
сОтображает сначала дату в формате дд.мм.гг, затем пробел и время в формате чч.мм. ее: 08.06. 99 19:45
dОтображает день без ведущего нуля: 8
ddОтображает день с ведущим нулем: 0 8
ddddОтображает день недели: воскресенье (для нерусифицированной версии Windows - Sunday)
dddddОтображает дату в формате дд. мм. гг: 08.06.99
ddddddОтображает дату в формате д Месяц год:8 Июнь 1999 (для нерусифицированной версии Windows - 8 June 1999)
mОтображает число месяца без ведущего нуля: 6
mmОтображает число месяца с ведущим нулем: 06
nunmОтображает сокращенное название месяца: июн.
nuninmОтображает полное название месяца: Июнь
у или ууОтображает две последние цифры года: 9 9
ууу или ууууОтображает все цифры года: 1999
hОтображает час без ведущего нуля: 19
hhОтображает час с ведущим нулем: 19
nОтображает минуты без ведущего нуля: 4 5
nnОтображает минуты с ведущим нулем: 4 5
sОтображает секунды без ведущего нуля: 0
ssОтображает секунды с ведущим нулем: 00
tОтображает время в формате чч:лш: 19:45
ttОтображает время в формате чч:мм:сс: 19:45:00
am/pmОтображает время в 12-часовом формате (am - до полудня, pm - после полудня). Для спецификаторов hh: mm am/pm получим 07:45 pm
ampmОтображает время в 12-часовом формате, но без указания до/после полудня. Для спецификаторов hh: mm ampm получим 07:45
a/pОтображает время в 12-часовом формате (а - до полудня, р - после полудня). Для спецификаторов hh: mm a/p получим 07:45 р
/Отображает используемый в Windows разделитель даты. Для спецификаторов d/m/у получим 8. 6. 99
:Отображает используемый в Windows разделитель времени. Для спецификаторов h:n: s получим 19:45:0



Замечу, что любые другие символы, указанные в строке Format, a также заключенные в апострофы или кавычки специальные символы-спецификаторы помещаются в выходную строку без преобразования, поэтому спецификаторы 'h час n мин' дадут строку 19 час 45 мин, а 'h час "n" мин' - 19час n мин.


При форматном преобразовании времени-даты или других типов в строку и обратно могут пригодиться следующие системные переменные:


Таблица 7.9. Системные переменные, управляющие стандартным отображением данных
CurrencyString: String;Символ или символы денежной единицы; для русифицированной Windows ими являются символы "р."
CurrencyFormat: Byte; Определяет положение символов денежной единицы: 0 - $1; 1 - 1$; 2 - $ 1; 3 - 1 $; в русифицированной Windows используется формат 1 (1р.)
NegCurrFormat: Byte;Определяет формат отрицательной суммы: 0 = ($1); 1 = -$1; 2 = S-1; 3 = $1-; 4 = (1$); 5 = -1$; 6 = 1-$; 7 =1$-; 8=-!$; 9=-$!; 10=1 $-; 11 =$1-; 12=$-!; 13= 1- $; 14 = (S 1); 15 = (1 $); в русифицированной Windows используется формат 5 (-lp.)
ThousandSeparator: Char; Разделитель тысяч; в русифицированной Windows используется символ #166
DecimalSeparator: Char;Разделитель дробной и целой частей числа (', ')
CurrencyDecimals: Byte; Количество цифр после запятой в денежном формате. Обычно содержит 0, что блокирует вывод мелкой денежной единицы. Чтобы в сумме присут ствовали не только рубли, но и копейки, в переменную следует установить значение 2
DateSeparator: Char;Разделитель даты; в русифицированной Windows используется ' . '
ShortDateFormat: String;   Обычно используется формат ' dd. mm. уу ', что соответствует, например, дате '31.05.00'. По скольку на рубеже столетий цифры года в таком формате кажутся неверными, я советую в начале каждой программы вставлять оператор Short-DateFormat := 'dd.mm.yyyy'; это даст '31.05.2000'
LongDateFormat: String; Для русифицированной версии содержит символы 'dd MMMM yyyy г.',что дает'31 Май 2000 г. '
TimeSeparator: Char;Разделитель времени (' : ')
TimeAMString: String; Символы 12-часового формата для времени до полудня (не используются в русифицированной версии Windows)
TimePMString: String; Символы 12-часового формата для времени после полудня (не используются в русифицированной версии Windows)
ShortTimeFormat: String;Краткий формат времени (обычно ' h: mm ')
LongTimeFormat: String;Полный формат времени (обычно ' hh: mm: ss ')
ShortMonthNames: array [1..12] of String;Краткие имена месяцев (янв, фев, мар, апр, май, июн, июл, авг, сен, окт, ноя, дек)
LongMonthNames: array [1..12] of String; Полные имена месяцев (Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь)
ShortDayNames: array [1..7] of String;Краткие имена дней недели (Вс, Пн, Вт, Ср, Чт, Пт, Сб)
LongDayNames: array [1..7] of String;Полные имена дней недели (воскресенье, понедельник, вторник, среда, четверг, пятница, суббота)
type TSysLocale = packed record DefaultLCID: LCID; PriLangID: LANGID;
SubLangID: LANGID;
FarEast: Boolean;
MiddleEast: Boolean; 
end;
var SysLocale: TSysLocale;
Определяет локализацию Windows: DefaultLCID- идентификатор локализации (1049); PriLangID- идентификатор первичного языка (25); SubLangID - идентификатор вторичного языка (если в качестве второго языка используется английский (США), это поле имеет значение 1); Far-East - локализация для Дальнего Востока (False): MiddleEast - локализация для Среднего Востока(False)
EraNames: array [1..7] of String;Используется в функции DateTimeToStr в Windows для Ближнего Востока
EraYearOffsets: array [1..7] of Integer;Используется в функции DateTimeToStr в Windows для Ближнего Востока
TListSeparator: Char;Разделитель списка строк ('; ')



Например, многие бухгалтерские программы в западных странах используют еженедельный отчет. В этом случае может пригодиться следующая подпрограмма, которая по заданной дате возвращает год, номер недели от его начала, дату понедельника и дату воскресенья:


procedure WeekToDates(aDate: TDateTime;
var Week: Byte;
var Year: Word;
var FirstDate, LastDate: TDateTime);
{Возвращает для указанной даты aDate год Year, номер недели от начала года Week, а также даты начала и конца недели} var
S: String;
begin
//Получаем в S символы года для даты aDate:
DateTimeToString(S,'yyyy',aDate) ;
//Формируем дату 1 января:
FirstDate := StrTo-Date('01'+DateSeparator+'01'+DateSeparator+S) ;
Year := StrToInt(S); //Возвращаем год
//Формируем последнюю дату 1-й недели:
LastDate := FirstDate;
DateTimeToString(S,'dddd',LastDate) ;
while SOLongDayNames [1] do
// LongDayNames [1 ]= 'воскресенье '
begin
LastDate := LastDate+1;
DateTimeToString(S,'dddd',LastDate);
end;
Week := 1;
//Циклически наращиваем FirstDate, LastDate и Week, пока
// LastDate не станет больше или равна aDate:
while LastDate begin
inc(Week);
FirstDate := FirstDate+7;
LastDate := LastDate+7
end
end; // WeekToDates


Для форматного преобразования вещественных чисел предназначены функции FloatToStrF и FormatFloat. Первая использует значение Format перечисляемого типа TFloatFormat и два дополнительных параметра - Precision и Digits. Правила использования параду метров функции FloatToStrF показаны в следующей таблице' (примеры преобразования даются для value = П = 3,141593654, Precision = 5 и Digits = 2):


Таблица 7.10. Правила использования параметров функции FloatToStrF
Значение FormatОписание
ffExponentНаучная форма представления с множителем ехх ("умножить на 10 в степени XX"). precision задает общее количество десятичных цифр мантиссы, Digits - количество цифр в десятичном порядке хх. Число округляется с учетом первой отбрасываемой цифры:3,1416Е+00
ff FixedФормат с фиксированным положением разделителя целой и дробной частей, precision задает общее количество десятичных цифр в представлении числа. Digits - количество цифр в дробной части. Число округляется с учетом первой отбрасываемой цифры:3,14
ff GeneralУниверсальный формат, использующий наиболее удобную для чтения форму представления вещественного числа. Соответствует формату ff Fixed, если количество цифр в целой части меньше или равно precision, а само число - больше или равно 0,00001, в противном случае соответствует формату ff Exponent: 3,1416
ffNumberОтличается от ffFixed использованием символа-разделителя тысяч при выводе больших чисел (для русифицированной версии Windows таким разделителем является пробел). Для value = П *1000 получим 3 141,60
ffCurrencyДенежный формат. Соответствует ffNumber, но в конце строки ставится символ денежной единицы (для русифицированной версии Windows - символы "р."). Для value = я*1000 получим 3 141,60р.



Параметр Format в функции FormatFloat может содержать такие спецификаторы:


Таблица 7.11. Спецификаторы форматирования вещественных чисел
;Разделитель спецификаторов формата для положительного, отрицательного и нулевого числа
0Определяет поле для цифры. Если в данной позиции форматируемое число имеет значащую цифру, она выводится, если нет - выводится 0
#Определяет поле для цифры. Если в данной позиции форматируемое число имеет значащую цифру, она выводится, если нет - ничего не выводится
.Поле для разделителя целой
и дробной частей числа
,Поле для разделителя тысяч
E+,e+
E-,e-
Признак представления числа в научном формате. В этом случае число представляется мантиссой и десятичным порядком, между которыми стоит символ Е. Спецификаторы е+ и е+ предписывают выводить знак + перед неотрицательным десятичным порядком, при использовании Е- и е- знак + перед порядком не выводится



Как и в случае даты/времени, любые другие символы строки Format, а также заключенные в апострофы или кавычки специальные символы-спецификаторы помещаются в выходную строку без преобразования: для value = 71*1000 спецификаторы'#, рубля' дадут строку 3 142 рубля. С помощью символа ";" можно задавать различные формы представления положительного, отрицательного и нулевого числа. При этом набор спецификаторов без ";" относится ко всем числам; если используется один символ ";", то спецификаторы слева от него применяются для форматирования положительных чисел, справа - отрицательных, а вывод нулей подавляется; при использовании двух символов "; " первый набор - для положительных, второй - для отрицательных и третий - для нулевых чисел. Например, спецификаторы '#;нуль' для value = -1 выведут нуль, а для value = о ничего не выведут, в то время как спецификаторы '#;00;нуль' для value = -1 выведут 01, а для value = 0 - строку нуль. Спецификаторы '#;;нуль' для value = -1 выведут -1, т. к. в этом случае спецификатор для отрицательных чисел не задан и для их вывода будет использован спецификатор положительных чисел, в то время как спецификаторы '#; ;нуль' подавляют вывод отрицательных чисел.


Мощная функция преобразования Format (табл. 7.7) перешла в Object Pascal из языка Си. Она позволяет преобразовать сразу несколько элементов открытого массива аргументов в соответствии с указаниями форматирующей строки. Например, Format('Строка "%s" содержит %d символов',['Паскаль',7]) даст такой результат: Строка "Паскаль" содержит 7 символов.


Элементами массива аргументов могут быть константы и/или переменные целого и вещественного типа, строки и указатели.


Форматирующая строка - это произвольная строка, в которую в любом месте можно вставить форматирующий спецификатор. Количество форматирующих спецификаторов должно быть не больше количества элементов массива аргументов - в противном случае возникнет исключительная ситуация. Каждому элементу массива аргументов по порядку их перечисления в конструкторе массива функция ставит в соответствие форматирующий спецификатор по порядку его следования в форматирующей строке: первому аргументу - первый спецификатор, второму - второй и т. д. Если количество спецификаторов меньше количества аргументов, "лишние" аргументы игнорируются.


Форматирующий спецификатор всегда начинается символом процента и в общем случае имеет такую структуру (в квадратных скобках указываются необязательные элементы):


"%" [index ":"] ["-"] [width] ["." prec] type


Здесь: index ":" - индекс открытого массива, с помощью этого элемента можно явно указать аргумент, который будет обрабатывать спецификатор; "-" указывает на необходимость прижать отформатированный спецификатором текст к левой границе отведенного для него пространства; width - число, определяющее количество символов для обработанного спецификатором текста; если это число меньше требуемого, этот элемент спецификатора игнорируется, если больше - дополняется справа (если есть элемент "-") или слева (если он отсутствует) нужным количеством пробелов; "." prec - задает точность представления целых и вещественных типов; type - символ, определяющий тип форматирования (см. таблицу ниже).


Таблица 7.12. Форматирующие спецификаторы для функции Format
dЦелое десятичное число. Если задан параметр ргес, то символьное представление должно содержать по меньшей мере ргес десятичных цифр: если символьное представление содержит меньше цифр, оно дополняется слева символами 0, если больше - параметр ргес игнорируется. Если аргумент не является целым числом, возникает исключительная ситуация
Беззнаковое целое число. Используется подобно типу d, но аргумент должен быть положительным числом. Если аргумент - отрицательное целое, результат форматирования непредсказуем
еВещественное число в экспоненциальном представлении: символьное представление имеет вид -d, dddddddddddE+ddd. Если число положительное, ведущий минус опускается, а если его модуль меньше 1, знак плюс меняется на минус. Всегда содержит одну цифру целой части, по меньшей мере одну цифру дробной части и не меньше трех цифр десятичного порядка. Если задан параметр точности, он определяет общее количество цифр до символа Е, но не меньше двух: если параметр точности содержит 1 или 0, он заменяется на 2. Если символьное представление содержит больше символов, чем ргес, оно округляется по первой отбрасываемой цифре. Умалчиваемое значение параметра точности 15
Вещественное число в виде -ddd, ddd (фиксированное представление). Параметр точности (по умолчанию 2) указывает количество цифр в дробной части. Если он 0, выводится только целая часть числа
g  Вещественное число в максимально коротком представлении (экспоненциальном или фиксированном). Параметр точности (по умолчанию 15) определяет максимальное количество значащих разрядов. Если число имеет меньшее количество цифр, оно не дополняется до ргес, а если число не имеет дробной части, оно выводится как целое (без запятой)
Соответствует фиксированному представлению, но использует символ-разделитель тысяч
Денежное представление вещественного
числа. Подобно типу n, но справа ставится знак денежной единицы
pУказатель. Выводит содержимое указателя в виде 8 шестнадцатеричных цифр
sАргумент должен быть символом, строкой или строкой с терминальным нулем. Параметр точности, если указан, определяет максимальную длину строки: если строка больше, она усекается, если меньше - параметр точности игнорируется
xШестнадцатеричное представление целого числа. Параметр точности определяет минимальное количество шестнадцатеричных цифр (если число меньше, оно дополняется ведущими нулями)



Функция не чувствительна к высоте букв, указывающих тип преобразования. Параметры index, ргес и width задаются явно (числами в форматирующей строке) или неявно - с помощью символа '*'. В этом случае в качестве параметра берется значение очередного аргумента в списке аргументов (он должен быть целым числом). Например, два следующих обращения дадут одинаковый результат:


Format ('%*.*f, [8, 2, 123.456]);
Format ('%8.2f, [123.456]);


<<<  НазадВперед  >>>
 1  2  3 


 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь
1С предприятие розница демо онлайн