Читайте также:
|
|
Сначала собственно функции, предоставляющие информацию о текущих дате и времени:
функция 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); //после запятой - длинная последовательность цифр
N:=Pos(',', S); //позиция запятой в строке
N:=N+Count; //вычисляем длину строки с нужным количеством знаков после запятой
Result:=Copy(S, 1, N);
end;
В комментариях Андрей предложил поправку в этой функции. Дело в том, что разделитель целой и дробной частей на разных компьютерах может быть и ', ' и '. ' - зависит от локальных настроек. Для учёта этого в Delphi существует встроенная константа DecimalSeparator типа Char, принимающая значение символа-разделителя целой и дробной частей. Соответственно, оператор
N:=Pos(',', S); //позиция запятой в строке
будет выглядеть так:
N:=Pos(DecimalSeparator, S);
Или вот, к примеру, текст модуля, обеспечивающего ввод в компонент Edit только чисел.
Дата добавления: 2015-12-08; просмотров: 144 | Нарушение авторских прав