Справочник по компонентам Дельфи

Автор: Пользователь скрыл имя, 06 Февраля 2013 в 01:52, аттестационная работа

Описание работы

Класс TList -- универсальный список. Он представляет собой массив нетипированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются -- эта обязанность лежит на программисте. Приведем доступные ему методы и свойства класса.

Работа содержит 1 файл

componens.doc

— 980.33 Кб (Скачать)

 

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 <Str2, 0 -- при Strl =Str2, >0 -- при Strl >Str2.

function StrIComp(Strl, Str2: PChar): Integer;

Работает как StrComp, но без учета регистра символов.

function StrLComp(Strl, Str2: PChar; MaxLen: Cardinal): Integer;

Работает как StrComp, но сравнение происходит на протяжении не более чем MaxLen символов.


 

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

Эта часть библиотеки претерпела изменения в Delphi. К функциям, которые работали с файлом через файловую переменную, добавились функции, работающие с дескриптором файла. Они рассматривают файл как двоичный; с текстовыми файлами нужно работать "по старинке".

Файловые функции, описанные в модуле SYSUTILS, приведены в таблице:

function File0pen(const FileName: string; Mode: Word) : Integer;

Открывает существующий FileName файл в режиме Mode (см. примеч. 1). Значение, возвращаемое в случае успеха, -- дескриптор открытого файла. В противном случае -- код ошибки DOS.

function FileCreate(const PileName: string): Integer;

Создает файл с именем FileName. Возвращает то же, что и FileOpen.

function FileRead(Handle: Integer; var Buffer; Count: Longint): Longint;

Считывает из файла с дескриптором Handle Count байт в буфер Buffer. Возвращает число реально прочитанных байт или -1 при ошибке.


 

function FileWrite(Handle: Integer; const Buffer;

Записывает в файл с дескриптором Handle Count байт из буфера Buffer. Возвращает число реально записанных байт или -1 при ошибке.

function FileSeek(Handle: Integer; Offset: Longint; Origin: Integer): Longint;

Позиционирует файл с дескриптором Handle в новое положение. При Origin = 1,2,3 положение смещается на Offset байт от начала файла, текущей позиции и конца файла соответственно. Возвращает новое положение или -1 при ошибке.

procedure FileClose(Handle:

Закрывает файл с дескриптором Handle.

function FileAge(const

Возвращает значения даты и времени создания файла или -1, если файл не существует.

function FileExists(const

Возвращает True если файл FileName существует к найден.

function FindFirst(const Path: string; Attr: Integer; var SearchRec: TSearchRec): Integer;

Ищет первый файл, удовлетворяющий маске поиска, заданной в Path и с атрибутами Attr (см. примеч. 2). В случае успеха заполняет запись SearchRec (см. примеч. 3) и возвращает 0, иначе возвращает код ошибки DOS.

function FindNext(var SearchRec: TSearchRec): Integer;

Продолжает процесс поиска файлов, удовлетворяющих маске поиска. Параметр SearchRec должен быть заполнен при помощи FindFirst. Возвращает 0, если очередной файл найден, или код ошибки DOS. Изменяет SearchRec.

procedure FindClose(var

Завершает процесс поиска файлов, удовлетворяющих маске поиска.

function FileQetDate(Handle: Integer) : Longint;

Возвращает время создания файла с дескриптором Handle (в формате DOS) или -1, если дескриптор недействителен.

procedure

FileSetDate(Handle: Integer;

Устанавливает время создания файла с дескриптором Handle (в формате DOS).

function FileGetAttr(const FileName: string): Integer;

Возвращает атрибуты (см. примеч. 2) файла с именем FileName или код ошибки DOS, если файл не найден.

function FileSetAttrtconst FileName: string; Attr:

Устанавливает атрибуты файла с именем FileName.

function DeleteFile(const

Уничтожает файл с именем FileName и в случае успеха возвращает True.

function RenameFile(const OldName, NewName: string): Boolean;

Переименовывает файл с именем OldName в NewName и возвращает True в случае успеха.


 

 

 

 

 

function ChangeFileExt(const FileName, Extension: string): string;

Изменяет расширение в имени файла FileName на Extension и возвращает новое значение FileName. Имя файла не изменяется.

function ExtractFilePath(const FileName: string): string;

Извлекает из строки с полным именем файла FileName часть, содержащую путь к нему.

function ExtractFileName(const FileName: string): string;

Извлекает из строки с полным именем файла FileName часть, содержащую его имя и расширение.

function ExtractFileExt(const FileName: string): string;

Извлекает из строки с полным именем файла FileName часть, содержащую его расширение.

function ExpandFileName(const FileName: string): string;

Возвращает полное имя файла FileName, добавляя при необходимости путь к нему и переводя все символы в верхний регистр.

function FileSearch(const Name, DirList: string): strings-

Производит поиск файла с именем Name в группе каталогов, заданных параметром DirList. Имена каталогов должны отделяться друг от друга точкой с запятой. Возвращает в случае успеха полное имя файла или пустую строку, если файл не найден.

function DiskFree(Drive: Byte): Longint;

Возвращает количество в байтах свободного места на заданном диске. Значение параметра Drive: 0 -- для текущего диска, 1 -- для А, 2 -- для В и т. д. Если параметр неверен, функция возвращает -1.

function DiskSize(Drive: Byte): Longint;

Возвращает размер диска Drive в байтах. Параметр Drive означает то же, что и в DiskFree.

function FileDateToDateTime(FileDate: Longint): TDateTime;

Преобразует дату и время в формате DOS в принятый в Delphi формат TDateTime.

function DateTimeToFileDate(DateTime: TDateTime): Longint;

Преобразует дату и время из формата TDateTime в формат DOS.


 

Примечания:

1. Допустимы следующие режимы открытия файлов:

 

 

 

 

*

Режим

Значение

Что означает

fmOpenRead

$0000

Открыть только для чтения.

fmOpenWrite

$0001

Открыть только для записи.

fmOpenReadWrite

$0002

Открыть для чтения и записи.

fmShareCompat

$0000

Обеспечить совместимость со старой моделью доступа к файлам.


 

Режим

Значение

Что означает

fmShareExclusive

$0010

Запретить другим доступ к файлу.

fmShareDenyWrite

$0020

Запретить другим запись в файл.

fmShareDenyRead

$0030

Запретить другим чтение файла.

fmShareDenyNone

$0040

Разрешить другим все виды доступа.


 

2. Файлы могут иметь следующие атрибуты:

faReadOnly = $01;

faHidden   = $02;

faSysFile  = $04;

faVolumeID = $08;

faDirectory = $10;

faArchive  = $20;

faAnyFile  = $3F;

3. Формат структуры TSearchRec таков:

TSearchRec = record

Fill: array[1..21] of Byte;

Attr: Byte;

Time: Longint;

Size: Longint;

Name: string[12] ;

end;

Приведем типовой вариант организации групповой обработки файлов при помощи функций FindFirst, FindNext и FindClose. В нем в список добавляются имя и длина всех файлов в каталоге с именем CADELPHI:

var SearchRec: TSearchRec;

I : Integer;

List : TStringList;

begin

List := TStringList.Create;

I := FindFirst('c:\delphi\*.*', faAnyFile, SearchRec);

while I = 0 do begin

List.Add(Format (' File %s has length %d bytes ', [SearchRec.Name, SearchRec.Size])) ;

I := FindNext(SearchRec);

end;

FindClose(SearchRec) ;

List.Free;

end;

При поиске файла наиболее вероятным является код ошибки -18 (файл не найден).

Процедура FindClose не делает ничего в 16-разрядной версии Delphi, однако будет играть роль в 32-разрядной. Употреблять ее следует из соображений переносимости приложений.

4 Ряд "старых" функций переименованы: это связано с появлением одноименных методов у объектов. Теперь вместо Assign следует употреблять AssignFile, вместо Close -- CloseFile. Старые имена поддерживаются ддя совместимости, но могут вызвать проблемы при одновременном употреблении с именами методов.

2.14.3. Функции форматирования строк

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

В Delphi существует группа функций форматирования строк. Их рассмотрение начнем с наиболее часто встречающегося представителя -- функции Format:

function Format (const Format: string; const Args: array of const) : string;

Первым параметром функции выступает форматирующая строка. Это -- обычная текстовая строка, но в ней на нужных местах стоят специальные символы, которые определяют, какие и как туда будут подставлены параметры.

Второй параметр функции Format называется списком аргументов. Он и содержит "вставляемые" в форматирующую строку параметры. Обратите внимение, что этот открытый массив имеет тип array of const. и в нем может передаваться переменное число разнотипных параметров. Например, после выполнения

S := FormatC Product %s , version %d.%d', [ 'Borland Delphi' , 1, 0]);

строке S будет присвоено * Product Borland Delphi , version 1.0'. Рассмотрим подробнее правила, по которьм составляется форматирующая строка.

"Специальные" места в ней называются спецификаторами формата и представляют собой следующие конструкции

"%" [index":"] ["-"I [width] ["."prec] type

где обозначены:

* символ -%", с которого начинаются все спецификаторы формата (обязательный);

* поле индекса аргумента [ index " : " ] (необязательное);

* признак выравнивания по левому краю ["-"I (необязательный);

* поле ширины [width] (необязательное);

* поле точности [ - . - prec ] (необязательное);

* символ типа преобразования type (обязательный).

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

Функция Format поддерживает следующие символы типа преобразования:

Символ

Тип

Что означает

d

Десятичный

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

х

Шестнадцатиричный

Как тип d, но элемент преобразуется в строку шестнадцатиричных цифр.

е

Научный

Элемент должен быть числом с плавающей точкой. Он преобразуется к нормализованному виду -d.dddE+ddd. Перед десятичной точкой всегда находится одна цифра (при необходимости, с минусом). После символа "Е" идет показатель степени, имеющий знак и состоящий не менее чем из 3 цифр. Общее число символов в представлении числа определяется полем ргес (по умолчанию 15).

f

Фиксированный

Элемент должен быть числом с плавающей точкой. Он преобразуется к виду -ddd.ddd. Поле ргес означает количество цифр после десятичной точки (по умолчанию 2).

д

Обобщенный

Элемент должен быть числом с плавающей точкой. Он преобразуется к одному из двух вышеперечисленных видов -- выбирается тот, который обеспечивает более короткую запись. Если требуемое число цифр слева от десятичной точки меньше значения поля ширины и само число больше 10" , применяется фиксированный тип. Удаляются все впереди идущие нули, десятичная точка (при возможности), а также символы, разделяющие строку на группы по три цифры.

п m

Числовой Денежный

Совпадает с типом f за исключением того, что после каждой группы из трех цифр ставятся разделительные символы:

d,ddd, ddd.ddd....

Элемент должен быть числом с плавающей точкой, отражающей денежную сумму. Способ ее представления зависит от значений глобальных констант, определенных в модуле SYSUTILS (см. ниже). В свою очередь, они зависят от настройки Windows на обозначения, принятые в данной стране.

Р

Указатель

Элемент должен быть указателем. На выходе он будет представлять из себя строку шестнадцатиричных цифр вида

ХХХХ: YYYY, где ХХХХ -- селектор, YYYY -- смещение.

s

Строка

Элемент может иметь тип string, PChar или быть отдельным символом (Char). Эта строка (или символ) вставляются вместо спецификатора формата. Если присутствует поле ргес и длина строки больше его значения, то она усекается.

Информация о работе Справочник по компонентам Дельфи