Delphi как вывести строку

Delphi как вывести строку

Работа со строками Delphi позволяет извлечь из строки необходимую информацию и представить её в нужном виде. Система предоставляет весь спектр необходимых функций для работы со строками Delphi и преобразования строк Delphi в необходимые форматы:

  • числовой формат, целый и дробный с плавающей точкой;
  • формат времени, даты, даты-времени;
  • преобразование символов к верхнему или нижнему регистру;
  • сравнение строк, поиск в строке и копирование подстроки;
    и многие другие.

Непосредственно сами строки Delphi поддерживают единственную операцию, так называемую операцию конкатенации, то есть присоединения. Несмотря на «научное» название, операция конкатенации выполняет очень простую процедуру. С помощью операции конкатенации одна строка присоединяется к другой:

Результирующая строка S будет суммой двух слагаемых строк. Длина строки, то есть количество символов в строке, возвращается встроенной функцией

function Length(S: String): Integer;

Delphi работает со строками типа String, в котором длина строки записывается в начале строки, перед первым символом. Поэтому индекс первого символа в строке не 0, а 1. То есть, если:

S:=’Строка типа String’;

то S[1] — символ ‘С’, S[2] — символ ‘т’ , последний символ в строке — S[Length(S)], равный ‘g’.

Однако часто приходится иметь дело со строками типа PChar, которые использует операционая система Windows. В строках типа PChar длина строки определяется специальным символом конца строки — #0. Поэтому для использования функций Windows тип String необходимо предварительно переводить в тип PChar. Преобразование типа String в тип PChar выполняет функция

Читайте также:  Как отбелить стенку холодильника

function PChar(S: String): PChar;

Для полноценной работы со строками Delphi используются следующие стандартные процедуры и функции:

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

Выполняя вычисления, используем для ввода данных и отображения результатов следующие функции, работающие со строками 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
функция AnsiCompareText(const S1, S2: String): Integer
Сравнивает две строки 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;

Или вот, к примеру, текст модуля, обеспечивающего ввод в компонент Edit только чисел.

Источник

DelphiComponent.ru — бесплатно видеоуроки по Delphi, статьи, исходники

Работа со строками в Delphi

Функция Length языка Delphi

Эта функция возвращает длину строки. У нее есть только один параметр — строка, длину которой надо вернуть. Функция Length выглядит так:

function Length(S): Integer;

Пример использования функции:

В этом примере объявлены две переменные str (строка) и index (целое число). В первой строке кода в переменную str помещается строка «Привет». После этого переменной index присваивается длина строки str. Результат, записанный в пере­менную index, будет равен числу 6 — длина строки.

Функция Сору языка Delphi

Эта функция возвращает указанный отрывок строки. Например, вам нужно по­лучить из строки «Меня зовут Михаил» символы начиная с 5-го по 10-й. Это легко сделать с помощью функции сору. У нее есть три параметра.

  • Строка, из которой нужно получить отрывок текста.
  • Начальный символ.
  • Количество нужных символов.

function Сору(S; Index, Count: Integer): string;

Пример использования функции:

Stri: =’Меня зовут Михаил ‘ ;

Str2:= copy(Stri, 5, 5);

Здесь объявлено две строковых переменных: str1 и str2. В первой строке кода мы присваиваем переменной str1строку «Меня зовут Михаил». В следующей строке происходит копирование в переменную str2 пяти символов из переменной stri, начиная с 5-го символа. Получается, что мы копируем строку с 5-го символа по 10-й. Результатом будет в str2 строка: «зовут».

Функция Delete языка Delphi

Эта функция удаляет кусок текста из указанной строки. У нее есть три параметра.

  • Строка, из которой нужно удалить отрывок текста.
  • Начальный символ, начиная с которого будут удаляться символы.
  • Количество символов для удаления. В общем виде функция выглядит так:

procedure Delete(var S: string; Index, Count:Integer);

Пример использования функции Delete:

Strl:= ‘Меня зовут Михаил’;

В этом примере мы удаляем из строки stri символы, начиная с 5-го по 10-й (пять символов, начиная с 5-й позиции). В результате в переменной str1 останется только строка «Меня Михаил».

Функция Pos языка Delphi

Эта функция ищет указанные символы в строке или, можно сказать, ищет под­строку. Если эти символы найдены, то она вернет порядковый номер, начиная с которого найдена нужная строка. У функции два параметра.

  • Строка, которую надо искать.
  • Строка, в которой надо искать.

Если подстрока не найдена, то функция вернет ноль, function Pos(Substr: string; S: string): Integer; Пример использования функции Pos:

Stri:=’Меня зовут Миша’;

В этом примере мы запускаем поиск строки «Миша» в строке stri. В данном случае строка «Миша» есть в строке переменной и начинается с символа 11. Ре­зультат — в переменной index будет число 11.

Функция Insert языка Delphi

Эта процедура вставляет одну строку в другую, начиная с указанного символа. У нее есть три параметра.

  • Строка, которую надо вставить.
  • Строка, в которую надо вставить.
  • Позиция, куда надо вставить.

В общем виде функция выглядит так:

procedure Insert(Source: string; var S: string; Index: Integer) ;

Пример использования функции insert:

Strl:=’Меня Миша’; Insert(‘зовут’, Strl, б);

Здесь вставляется в строку strl текст «зовут», начиная с 6-го символа. Результа­том будет строка «Меня зовут Миша».

Источник

Строки Delphi

Сегодня речь пойдет о строках. Строки в Delphi, на мой взгляд не менее важны, чем числа. Если Вы решили стать программистом, то без строк никуда. Как говорится «из песни слов не выкинешь».

В этой статье мы рассмотрим то, как можно работать со строками. Изучим основные функции, разберем их на примерах. Примеры будут не сложные, но очень полезные. Также попробуем комбинировать строковые функции.

Для начала покажу как определить строку и присвоить ей значение

Разберемся теперь с функциями обработки строк:

Функция Length()

Функция Length() – возвращает количество символов в строке. Выглядит она так:

Function Length(S): Integer;

Передаем один параметр – строку, в результате получаем число символов.

В примере мы выводим сообщение с длиной строки str1.

Функция Copy()

Функция Copy() – функция возвращаем заданный отрывок строки.

function Copy ( str1 : string, Index, Count : Integer ) : string;

  • str1 – строка, из которой мы хотим извлечь часть.
  • Index – порядковый номер начального символа.
  • Count – сколько символов мы хотим извлечь.

Приведу пример и все станет на свои места

Функция Pos()

Функция Pos() – возвращает позицию одной строки в другой. Так сказать, ищет подстроку в строке. Если что-то находит, то возвращает номер символа начиная с которого началось совпадение.

function Pos ( const str2, str1 : string ) : Integer;

  • str2 – строка, которую ищем.
  • str1 – строка, в которой ищем.

Напишем пример, в котором будем искать вхождение «стр» в str1 и выведем найденное число в сообщении.

Процедура Delete()

Процедура Delete() – удаляет часть строки.

procedure Delete ( var Str1 : string; Index : Integer, Count : Integer );

  • str1 – строка из которой удаляем символы.
  • Index – позиция с которой начинаем удалять.
  • Count – сколько символов удаляем

Процедура Insert()

Процедура Insert() – вставляет одну строку в другую, начиная с указанного символа.

procedure Insert(str2: String; var Str1: String; Index: Integer);

  • str2-страка, которую вставляем.
  • str1-строка, в которую вставляем.
  • Index – позиция, с которой начнется вставка

Эти основные функции помогут сделать со строками в delphi любые манипуляции.

Источник

Оцените статью