Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функции преобразования в числовой формат и обратно




 

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

 

функция IntToStr(N: Integer): String Преобразует целое число N в строку.
функция StrToInt(S: String): Integer Преобразует строку S в целое число.
функция FloatToStr(X: Extended): String Преобразует число с плавающей точкой X в строку.
функция StrToFloat(S: String): Extended Преобразует строку S в число с плавающей точкой.


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

Сначала собственно функции, предоставляющие информацию о текущих дате и времени:

 

функция Now: TDateTime Возвращает текущую дату и время.
функция Date: TDateTime Возвращает текущую дату.
функция Time: TDateTime Возвращает текущее время.


Далее, функции, работающие с составляющими даты и времени (год, месяц, число, день недели, часы, минуты, секунды и даже миллисекунды):

 

функция DayOfWeek(Date: TDateTime): Integer Возвращает текущий номер дня недели: 1 - воскресенье, 7 - суббота.
процедура DecodeDate(Date: TDateTime; var Year, Month, Day: Word) Разбивает дату Date на год - Year, месяц - Month и день - Day.
процедура DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) Разбивает время Time на час - Hour, минуты - Min, секунды - Sec и миллисекунды - MSec.
функция EncodeDate(Year, Month, Day: Word): TDateTime Объединяет год - Year, месяц - Month и день - Day в значение типа TDateTime.
функция EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime Объединяет час - Hour, минуты - Min, секунды - Sec и миллисекунды - MSec в значение типа TDateTime.


Наконец, собственно, функции, переводящие дату и время из формата TDateTime в строчный формат:

 

функция DateTimeToStr(DateTime: TDateTime): String Преобразует дату и время DateTime в строку.
функция DateToStr(Date: TDateTime): String Преобразует дату Date в строку.
функция TimeToStr(Time: TDateTime): String Преобразует время Time в строку.


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

 

функция AnsiLowerCase(const S: String): String Возвращает строку S, преобразованную к нижнему регистру.
функция AnsiUpperCase(const S: String): String Возвращает строку S, преобразованную к верхнему регистру.
функция Length(const S: String): Integer Возвращает количество символов в строке S.
функция Trim(const S: String): String Удаляет из строки S начальные и завершающие пробелы и управляющие символы.
функция TrimLeft(const S: String): String Удаляет из строки S начальные пробелы и управляющие символы.
функция TrimRight(const S: String): String Удаляет из строки S завершающие пробелы и управляющие символы.


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

 

функция AnsiCompareStr(const S1, S2: String): Integer Сравнивает две строки S1 и S2 с учётом регистра символов. Возвращает значение <0 если S1<S2, 0 если S1=S2, >0 если S1>S2
функция AnsiCompareText(const S1, S2: String): Integer Сравнивает две строки S1 и S2 без учёта регистра символов. Возвращает значение <0 если S1<S2, 0 если S1=S2, >0 если S1>S2


Следующие функции осуществляют поиск в текущей строке подстроки, вставляют, удаляют или заменяют подстроку:

 

функция Pos(Substr: String; Str: String): Integer Возвращает позицию (индекс) первого вхождения Substr в строке Str. Если Substrнет в Str, возвращает 0.
функция Insert(Source: String; var S: String; Index: Integer): Integer Вставляет строку Source в строку S, начиная с номера символа, равного Index
процедура Delete(var S: String; Index, Count: Integer) Удаляет из строки S подстроку, начинающуюся с номера символа, равного Index, и содержащую до Count символов.
функция StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): String Заменяет в строке S подстроку OldPattern на строку NewPattern с учётом флагаTReplaceFlags. Для работы с этой функцией нужно создать переменную типа TReplaceFlags - это множество, и включить в него одно или оба значения из следующих: rfReplaceAll - будут заменены все вхождения. Если это значение не будет включено во множество, то будет заменено только первое вхождение; rfIgnoreCase - замена будет без учёта регистра символов. Если это значение не будет включено во множество, то замена будет чувствительна к регистру символов.


Наконец, функция копирования части строки:

 

функция Copy(S: String; Index, Count: Integer): String Возвращает подстроку строки S, начиная с номера символа, равного Index и содержащую до Count символов.


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


function RealToStr(X: Real; Count: Integer): String; //Count - количество цифр после запятой
var S: String;
N: Integer;
begin
S:=FloatToStr(X); //после запятой - длинная последовательность цифр
//DecimalSeparator - встроенная константа, содержащая истинный разделитель целой и дробной частей числа N:=Pos(DecimalSeparator, S); //позиция запятой в строке
if N=0 //вычисляем длину строки с нужным количеством знаков после запятой
then N:=Length(S)
else N:=N+Count;
Result:=Copy(S, 1, N);
end;
end;

Контрольні питання

1. Розглянути роботу із строками Delphi

2. Охарактеризувати функції преобразування у числовий формат та навпаки


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 2: ПРОЦЕДУРНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ. ПРОГРАМУВАННЯ ГРАФІКИ

ТЕМА 2.1: ОСНОВИ МОВИ OBJECT PASCAL

 

Самостійне заняття №15 – Структура типів даних




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 480; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.