Навигация
Оглавление
Стандартные процедуры и функции для работы со строками

Так как обработка строк выполняется практически в каждой серьезной программе, стандартно подключаемый модуль 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

 

Сайт создан в системе uCoz