Стандартные процедуры и функции для работы со строками
Так как обработка строк выполняется практически в каждой серьезной
программе, стандартно подключаемый модуль 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') 2
Pos('sh', 'champagne') 0
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); 150 0
Val('2.5E+01', V, Code); 25.0 0
Val('2.5A+01', V, Code); <не определено> 4
Описанные процедуры и функции являются базовыми для всех остальных подпрограмм
обработки строк из модуля 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
|