
- •Модуль и его структура
- •Структура модуля
- •Список uses
- •Интерфейс
- •Реализациия
- •Инициализация и завершение
- •Ключевые слова
- •Слово const
- •Слово type
- •Слово var
- •Комментарии
- •Переменные
- •Типы данных и переменные
- •Преобразование типов
- •Знаки операций
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Функции Low и High
- •Динамические массивы
- •Короткая строка
- •Длинная строка
- •Расширенная строка
- •Строка с терминальным нулем
- •Операции со строками Слияние
- •Извлечение символа
- •Управляющие символы в строках
- •Разбиение литерала по строкам программы
- •Сравнение строк
- •Строковые функции
- •Форматирование строк
- •Множества
- •Объявление записи
- •Оператор with
- •Массивы записей
- •Совместимость типов данных
- •Указатели
- •Статические и динамические переменные
- •Размещение динамических переменных
- •Разыменование указателя
- •Управление вычислениями Операторы if, then, else
- •Выполнение нескольких инструкций.
- •Вложенные условия.
- •Циклы Элементы структуры цикла
- •Цикл for…
- •Функции Pred и Succ
- •Цикл while
- •Цикл repeat
- •Управление циклами
- •Оператор goto
- •Оператор case
- •Область видимости идентификаторов
- •Подпрограммы
- •Процедуры и функции
- •Объявление и определение подпрограммы
- •Параметры подпрограмм
- •Локальные процедуры и функции
- •Перегрузка подпрограмм
- •Параметры по умолчанию
- •Включение внешнего файла в модуль
Строковые функции
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 приведены в следующем разделе.