Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012 02 26 Основы программирования в Delphi.docx
Скачиваний:
11
Добавлен:
16.08.2019
Размер:
204.56 Кб
Скачать

Строковые функции

Object Pascal предоставляет большой набор процедур и функций, предназначенных для выполнения различных операций над строками. Наиболее употребительные функции перечислены в таблице 1.4.

Таблица 1.4. Строковые процедуры и функции

Имя

Описание

Пример

Copy

Возвращает подстроку

S := Copy(Source,Index,Count);

S := Copy(’test.txt’,1,4);

Delete

Удаляет часть строки

Delete(S,Index,Count);

Delete(’test.txt’,5,4);

Format

Форматирует строку

см. пример ниже

Insert

Вставка подстроки в строку

Insert(Source, SubStr,Index);

Insert(’testtxt’,’.’,5);

IntToStr

Преобразует целое число в строку

Edit1.Text:= IntToStr(Width)

Length

Возвращает число символов в строке

N := Length(Source);

LowerCase

Преобразует все буквы строки в строчные

Name := LowerCase(Edit1.Text)

Pos

Возвращает позицию подстроки в строке

K := Pos(SubStr,Source);

K := Pos(’.’,FileName);

StringOfChar

Возвращает строку, заполненную заданным символом

StrPas

Преобразует строку с терминальным нулем (PChar или array of Char) в строку типа string

const T : PChar=’0-строка’;

var S : string;

. . . . . . . .

S := StrToPas(T);

StrPCopy

Преобразует строку типа string в строку с терминальным нулем

const S = ’Обычная строка’;

var T : PChar;

T := StrPCopy(S);

StrToInt

Преобразует строку в целое число

Width := StrToInt(Edit1.Text);

StrToIntDef

Преобразует строку в целое число. Возвращает значение по умолчанию в случае ошибки

Width:=

StrToIntDef(Edit1.Text,’120’);

StrToXXX

Преобразование строки в специальный тип данных

var D,T : TDateTime;

D := StrToDateTime(Edit1.Text)

T := StrToTime(Edit1.Text);

Trim

Удаляет из строки пробелы если они есть в ее начале и в конце

UpperCase

Преобразует все буквы строки в заглавные

FileName :=

UpperCase(Edit1.Text);

XXXToSTr

Преобразование данных специальных типов в строку

Edit1.Text := DateTimeToStr(T)

Дадим пояснения к функциям таблицы 1.4.

Функция StrToInt преобразует строку, содержащую текстовое представление целого числа в значение целого типа. Допустим, что на форме приложения имеется компонент редактирования (Edit), с помощью которого пользователь должен ввести значение целого числа. Компонент Edit работает только с текстом. Поэтому получить этот текст как значение целого числа следует так:

StepNo := StrToInt(Edit1.Text);

где StepNo – переменная типа integer.

Остальные функции StrToXXX (StrToFloat, StrToDate, и т.д.) работают точно также. Любая из этих функций создает исключительную ситуацию если не может выполнить преобразование строки в число. Например, если пользователь введет S123 вместо 123, возникнет ошибка времени выполнения (исключительная ситуация) так как символ S нельзя интерпретировать как цифру.

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

Спутник <…> выведен на <…> орбиту высотой <…> км.

Здесь угловыми скобками отмечены переменные составляющие текста - параметры. Пусть первый параметр – наименование спутника; второй – одно из слов «расчетную/нерасчетную»; третий параметр – целое число. Следующий фрагмент кода – текст функции, которая возвращает отформатированное сообщение.

function GetSituationTxt(const SatName:string;

Situation:boolean; Altitude:integer):string;

const

sTextToFormat=

’Спутник %s выведен на %s орбиту высотой %d км’;

sSitTxt:array[boolean] of string=

(’нерасчетную’,’расчетную’);

begin

Result:=Format(sTextToFormat,

[SatName, sSitTxt[Situation], Altitude]);

end;

Исходная строка представлена константой sTextToFormat. Символы %s в ней означают, что вместо них надо подставить параметр – строку, а символы %d обозначают место вставки значения целого числа. Подставляемые параметры перечисляют через запятую и заключают в квадратные скобки. Типы значений параметров не должны противоречить символам форматирования. Подробные сведения о форматировании строк функцией Format приведены в следующем разделе.