Справочник по компонентам Delphi. Часть 1 - Функции работы со строками

ОГЛАВЛЕНИЕ

Функции работы со строками

В Delphi вынужденно уживаются два стандарта работы со строковыми дан­ными. Первый из них, когда длина строки записывается в ее первом байте, традиционен для Паскаля. Ему соответствует тип данных string. Другой подразумевает, что строка заканчивается нулевым символом. Такие строки имеют тип PChar и применяются в основном при обращении к функциям API Windows.

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

Первая таблица содержит функции для работы с типом string. Все перечисленные в ней функции находятся в модуле SYSUTILS.

function NewStrtconst S: String): PString;Создает копию строки S и возвращает указатель на нее.
procedure DisposeStr(P: PString) ;Уничтожает строку, на которую указывает Р.
procedure AssignStr(var P: PString; const S: strings-Уничтожает строку, на которую указывает Р и затем присваивает ему адрес созданной копии строки S.
procedure AppendStrfvar Dest: string; const S: string);Добавляет строку S в конец строки Dest.
function Uppercase(const S: string): string;Преобразует символы 'a'..'z' в строке S к верхнему регистру.
function LowerCase(const S: string): string;Преобразует символы 'A'..'Z' в строке S к нижнему регистру.
function CompareStr(const SI, S2: string): Integer;Сравнивает две строки S1 и S2 с учетом регистра символов. Возвращаемое значение равно 0 в случае равенства строк или разности кодов пары первых несовпадающих символов.
function CompareText(const SI, S2: string): Integer;Сравнивает две строки без учета регистра сим­волов.
function AnsiUpperCase(const S: string): string;Преобразует символы в строке к верхнему регистру с учетом языкового драйвера.
function AnsiLowerCase(const S: string) : string;Преобразует символы в строке к нижнему регистру с учетом языкового драйвера.
function AnsiCompareStr(const SI, S2: string): Integer;Сравнивает две строки с использованием языкового драйвера и с учетом регистра символов.
function AnsiCompareText(const SI, S2 : string) : Integer;Сравнивает две строки с использованием языкового драйвера и без учета регистра символов.
function IsValidldent(const Ident: string): Boolean;Возвращает True, если строка Ident может служить идентификатором в программе на Object Pascal (т. е. содержит только буквы и цифры, причем первый символ — буква).
function IntToStr(Value: Longint): string;Преобразует целое число в строку.
function IntToHex(Value: Longint; Digits: Integer): s t r ing ;Преобразует целое число в строку с его шестнадцатиричным представлением.
function StrToInt(const S: string): Longint;Преобразует строку в целое число. При ошибке возникает исключительная ситуация EConvertError.
function StrToIntDef(const S: string; Default; Longint): Longint ;Работает как StrToInt, но при ошибке возвращает значение Default.
function LoadStr(Ident: Word) : string;Загружает строку с индексом Ident из ресурсов приложения.
function FmtLoadStr(Ident: Word; const Args: array of const): string;Загружает строку с индексом Ident из ресурсов приложения с форматированием (см. описание функции Format).

Следующая таблица содержит функции для работы со строками типа PChar (также находятся в модуле SYSUTILS):

function StrLIComp(Strl, Str2: PChar; MaxLen: Cardinal) : Integer;Работает как StrLComp, но без учета регистра символов.
function StrScantStr: PChar; Chr: Char) : PChar;Отыскивает первое вхождение символа Chr в строку Str и возвращает указатель на него или nil в случае отстутствия.
function StrRScanfStr: PChar; Chr: Char) : PChar;Работает как StrScan, но отыскивается последнее вхождение Chr.
function StrPos(Strl, Str2: PChar) : PChar;Отыскивает первое вхождение строки Str2 в строку Strl и возвращает указатель на нее или nil в случае отстутствия.
function StrUpperfStr: PChar) : PChar;Преобразует строку к верхнему регистру.
function StrLower(Str: PChar): PChar;Преобразует строку к нижнему регистру.
function StrPaslStr: PChar): String;Преобразует строку Str в строку типа string.
function StrAlloc(Size: Cardinal): PChar;Размещает в куче памяти новую строку размером Size и возвращает указатель на нее.
function StrBufSize(Str: PChar): Cardinal;Возвращает размер блока памяти, выделенного для строки при помощи функции StrAlloc.
function StrNewfStr: PChar): PChar ;Размещает в куче памяти копню строки Str и возвращает указатель на нее.
procedure StrDispose(Str: PChar);Уничтожает строку, размещенную при помощи StrAlloc или StrNew.
function StrLenfStr: PChar): Возвращает число символов в строке Str (без учета завершающего нулевого).
function StrEndfStr: PChar): PChar;Возвращает указатель на завершающий нулевой символ строки Str.
function StrMove(Dest, Source: PChar; Count: Cardinal): PChar;Копирует из строки Source в строку Dest ровно Count символов, причем строки могут пере­крываться.
function StrCopy(Dest, Source: PChar): PChar;Копирует Source в Dest и возвращает указатель на Dest.
function StrECopy(Dest, Source: PChar): PChar;Копирует Source в Dest и возвращает указатель на завершающий символ Dest.
function StrLCopy(Dest, Source: PChar; MaxLen: Cardinal): PChar;Работает как StrCopy, но копирует не более MaxLen символов.
function StrPCopy(Dest: PChar; const Source: String): PChar;Копирует строку Source (типа string) в Dest и возвращает указатель на Dest.
function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar;Работает как StrPCopy, но копирует не более MaxLen символов.
function StrCat(Dest, Source: PChar): PChar;Дописывает Source к концу Dest и возвращает указатель на Dest.
function StrLCatfDest, Source: PChar; MaxLen: Cardinal) : PChar;Работает как StrCat, но копирует не более MaxLen-StrLen(Dest) символов.
function StrCoirip(Strl, Str2: PChar): Integer;Сравнивает две строки (посимвольно). Возвра­щает значение: <0 — при Strl 0 — при Strl =Str2, >0 — при Strl >Str2.
function StrIComp(Strl, Str2: PChar): Integer;Работает как StrComp, но без учета регистра символов.
function StrLComp(Strl, Str2: PChar; MaxLen: Cardinal): Integer;Работает как StrComp, но сравнение происходит на протяжении не более чем MaxLen символов.