Стандартные процедуры и функции для работы со строками
Так как обработка строк выполняется практически в каждой серьезной программе, стандартно подключаемый модуль System имеет набор процедур и функций, значительно облегчающих этот процесс. Все следующие процедуры и функции применимы и к коротким, и к длинным строкам.
- Concat(S1, S2, ... , Sn): string — возвращает строку, полученную в результате сцепления строк S1, S2, ..., Sn. По своей работе функция Concat аналогична операции сцепления (+).
- Copy(S: string, Index, Count: Integer): string — выделяет из строки S подстроку длиной Count символов, начиная с позиции Index.
- Delete(var S: string, Index, Count: Integer) — удаляет Count символов из строки S, начиная с позиции Index.
- Insert(Source: string; var S: string, Index: Integer) — вставляет строку Source в строку S, начиная с позиции Index.
- Length(S: string): Integer — возвращает реальную длину строки S в символах.
- SetLength(var S: string; NewLength: Integer) — устанавливает для строки S новую длину NewLength.
Примеры:
Выражение | Значение S |
S := Concat('Object ', 'Pascal'); | 'Object Pascal' |
S:= Copy('Debugger', 3, 3); | 'bug' |
S := 'Compile'; Delete(S, 1, 3); | 'pile' |
S := 'Faction'; Insert('r', S, 2) | 'Fraction' |
- Pos(Substr, S: string): Byte — обнаруживает первое появление подстроки Substr в строке S. Возвращает номер той позиции, где находится первый символ подстроки Substr. Если в S подстроки Substr не найдено, результат равен 0.
Выражение | Результат |
Pos('rat', 'grated’) | |
Pos('sh', 'champagne') |
- Str(X [: Width [: Decimals] ], var S: string) — преобразует числовое значение величины X в строку S. Необязательные параметры Width и Decimals являются целочисленными выражениями. Значение Width задает ширину поля результирующей строки. Значение Decimals используется с вещественными числами и задает количество символов в дробной части.
Выражение | Значение S |
Str(–200, S); | '–200' |
Str(200 : 4, S); | ' 200' |
Str(1.5E+02 : 4, S); | ' 150' |
- Val(S: string, var V; var Code: Integer) — преобразует строку S в величину целого или вещественного типа и помещает результат в переменную V. Если во время операции преобразования ошибки не обнаружено, значение переменной Code равно нулю; если ошибка обнаружена (строка содержит недопустимые символы), Code содержит номер позиции первого ошибочного символа, а значение V не определено.
Выражение | Значение V | Значение Code |
Val('100', V, Code); | ||
Val('2.5E+01', V, Code); | 25.0 | |
Val('2.5A+01', V, Code); | <не определено> |
Описанные процедуры и функции являются базовыми для всех остальных подпрограмм обработки строк из модуля SysUtils.
- AdjustLineBreaks(const S: string): string — возвращает копию строки S, в которой все мягкие переносы строк (одиночные символы #13 или #10) заменены жесткими переносами строк (последовательность символов #13#10).
- AnsiCompareStr(const S1, S2: string): Integer — сравнивает две строки, делая различие между заглавными и строчными буквами; учитывает местный язык. Возвращаемое значение меньше нуля, если S1 < S2, равно нулю, если S1 = S2, и больше нуля, если S1 > S2.
- AnsiCompareText(const S1, S2: string): Integer — сравнивает две строки, не делая различий между заглавными и строчными буквами; учитывает местный язык. Возвращаемое значение меньше нуля, если S1 < S2, равно нулю, если S1 = S2, и больше нуля, если S1 > S2.
- AnsiDequotedStr(const S: string; Quote: Char): string — удаляет специальный символ, заданный параметром Quote, из начала и конца строки и заменяет парные спецсимволы на одиночные; если специальный символ отсутствует в начале или конце строки, то функция возвращает исходную строку без изменений.
- AnsiExtractQuotedStr(var Src: PChar; Quote: Char): string — делает то же, что и функция AnsiDequotedStr, но результат возвращается вместо исходной строки, которая имеет тип PChar.
- AnsiLowerCase(const S: string): string— преобразует заглавные буквы строки S к строчным буквам с учетом местного языка.
- AnsiPos(const Substr, S: string): Integer — выполняет те же действия, что и функция Pos, но в отличие от нее поддерживает работу с многобайтовой MBCS-кодировкой.
- AnsiQuotedStr(const S: string; Quote: Char): string — преобразует строку, заменяя все вхождения специального символа, заданного параметром Quote, на парные спецсимволы, а также помещает специальный символ в начало и конец строки. Поддерживает работу с MBCS-кодировкой.
- AnsiSameCaption(const Text1, Text2: string): Boolean — сравнивает две строки, не делая различие между заглавными и строчными буквами, а также не учитывая символ ‘&’; учитывает местный язык.
- AnsiSameStr(const S1, S2: string): Boolean— сравнивает строки, делая различие между строчными и заглавными буквами; учитывает местный язык.
- AnsiSameText(const S1, S2: string): Boolean — сравнивает строки, не делая различие между строчными и заглавными буквами; учитывает местный язык.
- AnsiUpperCase(const S: string): string — преобразует все строчные буквы в заглавные; учитывает местный язык.
- CompareStr(const S1, S2: string): Integer— выполняет сравнение двух строк, делая различие между строчными и заглавными буквами; не учитывает местный язык. Возвращаемое значение меньше нуля, если S1 < S2, равно нулю, если S1 = S2, и больше нуля, если S1 > S2.
- CompareText(const S1, S2: string): Integer — выполняет сравнение двух строк, не делая различий между строчными и заглавными буквами; не учитывает местный язык. Возвращаемое значение меньше нуля, если S1 < S2, равно нулю, если S1 = S2, и больше нуля, если S1 > S2.
- DateTimeToStr(const DateTime: TDateTime): string— преобразует значение даты и времени в строку.
- DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime) — преобразует значение даты и времени в строку, выполняя при этом форматирование в соответствии со значением строки Format. Управляющие символы строки Format подробно описаны в справочнике по среде Delphi.
- DateToStr(const DateTime: TDateTime): string — преобразует числовое значение даты в строку.
- Format(const Format: string; const Args: array of const): string — форматирует строку в соответствии с шаблоном Format, заменяя управляющие символы шаблона на значения элементов открытого массива Args. Управляющие символы подробно описаны в справочнике по среде Delphi.
- FormatDateTime(const Format: string; DateTime: TDateTime): string — преобразует значение даты и времени в строку, выполняя при этом форматирование в соответствии со значением строки Format. Управляющие символы строки Format подробно описаны в справочнике по среде Delphi.
- BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string — преобразует булевское значение в строку. Если параметр UseBoolStrs имеет значение False, то результатом работы функции является одно из значений '0' или ‘–1’. Если же параметр UseBoolStrs имеет значение True, то результатом работы является одно из значений ‘FALSE’ или ‘TRUE’ (программист может задать другие значения; о том, как это сделать, читайте в справочнике по системе Delphi).
- IntToHex(Value: Integer; Digits: Integer): string — возвращает шестнадцатиричное представление целого числа Value. Параметр Digits задает количество цифр результирующей строки.
- IntToStr(Value: Integer): string — преобразует целое число Value в строку.
- IsDelimiter(const Delimiters, S: string; Index: Integer): Boolean — проверяет, является ли символ S[Index] одним из символов строки Delimiters. Функция поддерживает работу с многобайтовой MBCS-кодировкой.
- IsValidIdent(const Ident: string): Boolean — возвращает True, если строка Ident является правильным идентификатором языка Delphi.
- LastDelimiter(const Delimiters, S: string): Integer — возвращает индекс последнего вхождения одного из символов строки Delimiters в строку S.
- LowerCase(const S: string): string — преобразует все заглавные буквы строки S к строчным; не учитывает местный язык (в преобразовании участвуют лишь символы в диапазоне от 'A' до 'Z').
- QuotedStr(const S: string): string — преобразует исходную строку в строку, взятую в одиночные кавычки; внутри строки символы кавычки дублируются.
- SameText(const S1, S2: string): Boolean — сравнивает строки, не делая различие между строчными и заглавными буквами; учитывает местный язык.
- SetString(var S: string; Buffer: PChar; Len: Integer) — копирует строку с типом PChar в строку с типом string. Длина копируемой строки задается параметром Len.
- StringOfChar(Ch: Char; Count: Integer): string — возвращает строку, в которой повторяется один и тот же символ. Количество повторений задается параметром Count.
- StringToGUID(const S: string): TGUID — преобразует строковое представление глобального уникального идентификатора в стандартный тип TGUID.
- StrToBool(const S: string): Boolean — преобразует строку в булевское значение.
- StrToBoolDef(const S: string; const Default: Boolean): Boolean — преобразует строку в булевское значение. В случае невозможности преобразования, функция возвращает значение, переданное через параметр Default.
- StrToDate(const S: string): TDateTime — преобразует строку со значением даты в числовой формат даты и времени.
- StrToDateDef(const S: string; const Default: TDateTime): TDateTime — преобразует строку со значением даты в числовой формат даты и времени. В случае невозможности преобразования, функция возвращает значение, переданное через параметр Default.
- StrToDateTime(const S: string): TDateTime — преобразует строку в числовое значение даты и времени.
- StrToDateTimeDef(const S: string; const Default: TDateTime): TDateTime — преобразует строку в числовое значение даты и времени. В случае невозможности преобразования, функция возвращает значение, переданное через параметр Default.
- StrToInt(const S: string): Integer— преобразует строку в целое число. Если строка не может быть преобразована в целое число, функция генерирует исключительную ситуацию класса EConvertError (обработка исключительных ситуаций рассматривается в главе 4).
- StrToIntDef(const S: string; Default: Integer): Integer — преобразует строку в целое число. Если строка не может быть преобразована в целое число, функция возвращает значение, заданное параметром Default.
- StrToInt64(const S: string): Int64 — 64-битный аналог функции StrToInt — преобразует строку в 64-битное целое число. Если строка не может быть преобразована в 64-битное число, функция генерирует исключительную ситуацию класса EConvertError (обработка исключительных ситуаций рассматривается в главе 4).
- StrToInt64Def(const S: string; const Default: Int64): Int64 — 64-битный аналог функции StrToIntDef — преобразует строку в 64-битное целое число. Если строка не может быть преобразована в 64-битное число, функция возвращает значение, заданное параметром Default.
- StrToTime(const S: string): TDateTime — преобразует строку в числовой формат времени. Если строка не может быть преобразована в числовой формат времени, функция генерирует исключительную ситуацию класса EConvertError (обработка исключительных ситуаций рассматривается в главе 4).
- StrToTimeDef(const S: string; const Default: TDateTime): TDateTime — преобразует строку в числовой формат времени. В случае ошибки преобразования, функция возвращает значение, заданное параметром Default.
- TimeToStr(Time: TDateTime): string — преобразует числовое значение времени в строку.
- Trim(const S: string): string — возвращает часть строки S без лидирующих и завершающих пробелов и управляющих символов.
- Trim(const S: WideString): WideString — Unicode-аналог функции Trim — возвращает часть строки S без лидирующих и завершающих пробелов и управляющих символов.
- TrimLeft(const S: string): string — возвращает часть строки S без лидирующих пробелов и управляющих символов.
- TrimLeft(const S: WideString): WideString — Unicode-аналог функции TrimLeft — возвращает часть строки S без лидирующих пробелов и управляющих символов.
- TrimRight(const S: string): string — возвращает часть строки S без завершающих пробелов и управляющих символов.
- TrimRight(const S: WideString): WideString — Unicode-аналог функции TrimRight — возвращает часть строки S без завершающих пробелов и управляющих символов.
- UpperCase(const S: string): string — преобразует все строчные буквы строки S в заглавные; не учитывает местный язык (в преобразовании участвуют лишь символы в диапазоне от 'a' до 'z').
- WideFormat(const Format: WideString; const Args: array of const): WideString — Unicode-аналог функции Format, учитывающий символы местного языка, — форматирует строку в соответствии с шаблоном Format, заменяя управляющие символы в шаблоне на значения элементов открытого массива Args. Управляющие символы подробно описаны в справочнике по системе Delphi.
- WideFmtStr(var Result: WideString; const Format: WideString; const Args: array of const) — аналог функции WideFormat. Отличие в том, что WideFmtStr возвращает результат через параметр Result, а не как значение функции.
- WideLowerCase(const S: WideString): WideString — Unicode-аналог функции LowerCase (учитывает местный язык) — преобразует все заглавные буквы строки S к строчным буквам.
- WideSameCaption(const Text1, Text2: WideString): Boolean — Unicode-аналог функции AnsiSameCaption — сравнивает две строки, не делая различие между строчными и заглавными буквами, а также не учитывая символ ‘&’; учитывает местный язык.
- WideSameStr(const S1, S2: WideString): Boolean — Unicode-аналог стандартной операции сравнения строк — сравнивает две строки, делая различие между строчными и заглавными буквами.
- WideSameText(const S1, S2: WideString): Boolean — Unicode-аналог функции SameText (учитывает местный язык) — сравнивает строки, не делая различие между строчными и заглавными буквами.
- WideUpperCase(const S: WideString): WideString — Unicode-аналог функции UpperCase (учитывает местный язык) — преобразует все строчные буквы строки S в заглавные.
- WrapText(const Line: string; MaxCol: Integer = 45): string — разбивает текст Line на строки, вставляя символы переноса строки. Максимальная длина отдельной строки задается параметром MaxCol.
- WrapText(const Line, BreakStr: string; const BreakChars: TSysCharSet; MaxCol: Integer): string — более мощный аналог предыдущей функции — разбивает текст Line на строки, вставляя символы переноса строки.
- AnsiToUtf8(const S: string): UTF8String — перекодирует строку в формат UTF8.
- PUCS4Chars(const S: UCS4String): PUCS4Char — возвращает указатель на первый символ строки формата UCS-4 для работы со строкой, как с последовательностью символов, заканчивающейся символом с кодом нуль.
- StringToWideChar(const Source: string; Dest: PWideChar; DestSize: Integer): PWideChar — преобразует стандартную строку к последовательности Unicode-символов, завершающейся символом с кодом нуль.
- UCS4StringToWideString(const S: UCS4String): WideString — преобразует строку формата UCS-4 к строке формата Unicode.
- Utf8Decode(const S: UTF8String): WideString — преобразует строку формата UTF-8 к строке формата Unicode.
- Utf8Encode(const WS: WideString): UTF8String — преобразует строку формата Unicode к строке формата UTF-8.
- Utf8ToAnsi(const S: UTF8String): string — преобразует строку формата UTF-8 к стандратной строке.
- WideCharLenToString(Source: PWideChar; SourceLen: Integer): string — преобразует строку формата Unicode к стандартной строке. Длина исходной строки задается параметром SourceLen.
- WideCharLenToStrVar(Source: PWideChar; SourceLen: Integer; var Dest: string) — аналог предыдущей функции — преобразует строку формата Unicode к стандартной строке. Длина исходной строки задается параметром SourceLen, а результат возвращается через параметр Dest.
- WideCharToString(Source: PWideChar): string — преобразует последовательность Unicode-символов, завершающуюся символом с кодом нуль, к стандартной строке.
- WideCharToStrVar(Source: PWideChar; var Dest: string) — аналог предыдущей функции — преобразует последовательность Unicode-символов, завершающуюся символом с кодом нуль, к стандартной строке. Результат возвращается через параметр Dest.
- WideStringToUCS4String(const S: WideString): UCS4String — преобразует строку формата Unicode к строке формата UCS-4.
Операторы
Общие положения
Основная часть программы на языке Delphi представляет собой последовательность операторов, выполняющих некоторое действие над данными, объявленными в секции описания данных. Операторы выполняются строго последовательно в том порядке, в котором они записаны в тексте программы и отделяются один от другого точкой с запятой.
Все операторы принято в зависимости от их назначения разделять на две группы: простыеи структурированные.
Простые операторы не содержат в себе никаких других операторов. К ним относятся операторы присваивания, вызова процедуры, пустой оператор и оператор безусловного перехода.
Структурированные операторы содержат в себе простые или другие структурированные операторы. Это составной оператор, условные операторы и операторы повтора (циклы).
Простые операторы
Дата добавления: 2016-02-09; просмотров: 1234;