Страница 7 из 39 Функции работы со строками В 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 символов. | |