Object Pascal

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

дние в терминологии файловой атрибутики называются архивами. Далее, если найденный файл есть архив, т е. файл в общепринятой терминологии, то в строку S будет помещено сообщение. Например, если найденный файл имеет имя Ig.ttg и его размер равен 15899, то S= Файл Ig.ttg имеет размер 15889 байтов.

Function FindNext(var F: TSearchRec): Integer;

Находит следующий файл, атрибуты которого указаны в FindFirst.

Procedure FindClose(var F: TSearchRec);

Закрывает действие FindFirst/FindNext.

Function DeleteFile(const FileName: string): Boolean;

Удаляет файл по имени. Если файл не может быть удален или не существует возвращает False.

Function CreateDir(const Dir: string): Boolean;

Создает новую папку.

Function GetCurrentDir: string;

Возвращает текущую папку.

Function GetCurrentDir: string;

Возвращает текущую папку.

Function SetCurrentDir(const Dir: string): Boolean;

Установка новой текущей папки.

Function RemoveDir(const Dir: string): Boolean;

Удаление папки. Перед удалением папка должна быть пустой.

Function ExtractFileDir(const FileName: string): string;

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

Function ExtractFilePath(const FileName: string): string;

Выделяет из полного имени файла FileName путь до файла.

Function ExtractFileExt(const FileName: string): string;

Возвращает расширение файла FileName.

Function ExtractFileName(const FileName: string): string;

Возвращает имя файла FileName (без расширения).

Function DirectoryExists(Dir: string): boolean;

Проверяет существование директории. Пример:

if DirectoryExists(C:\APPS\SALES\LOCAL) then ;

Function FileExists(FileName: string): boolean;

Проверяет существование файла. Примеры:

B:= FileExists(C:\APPS\SALES\LOCAL\Fort.pas); {полное имя}

B:= FileExists(Fort.pas); {указано усеченное имя файла, проверка его существования только в текущей директории}

Procedure ForceDirectories(Dir: string);

Создает новую директорию.

Procedure ForceDirectories(C:\APPS\SALES\LOCAL).

П р и м е ч а н и е. К моменту обращения к процедуре директории APPS и SALES должны существовать.

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

Procedure DelInsideDir(FullDir: tPathStr);

Var

L: Integer;

Sr: TSearchRec;

dr, q: tPathStr;

begin

if ExistDir(FullDir) then {такая директория есть}

begin

GetDir(0,dr); {запомнить текущую директорию}

ChDir(FullDir); {текущей становится удаляемая директория}

L:=FindFirst(Slash(FullDir)+*.*,faAnyFile,Sr);{поиск первого файла}

try

While (L = 0) do begin {пока файлы находятся}

Case Sr.Attr of

faDirectory:{найденный файл внутренняя директория}

.)and(Sr.Name..) then {это не ссылка, директория}

begin

{удаление внутреннего содержимого директории}

DelInsideDir(Slash(FullDir)+Sr.Name);

q:= Slash(FullDir)+Sr.Name;

ChDir(ExtractFilePath(q));

{удаление самой директории (можно, т. к. она теперь пуста)}

if NotEmpStr(ExtractFileName(q)) then RmDir(ExtractFileName(q));

end;

faArchive: DeleteFile(Sr.Name); {это файл, удаляется}

end; {Конец Case-оператора}

L:= FindNext(Sr); {следующий файл директории}

end; {цикла While}

finally

FindClose(Sr); {закрыть поиск файлов}

end; {try finally end}

ChDir(dr); {вернуться в текущую директорию}

end; {if}

end;{процедуры}

Например, если необходимо стереть данные с дискеты, то это можно сделать с помощью оператора: DelInsideDir(A:\);

18. Классы и объекты

В Object Pascal классами называются специальные типы, которые содержат поля, методы и свойства. Предшественником класса является устаревший ныне тип языка Turbo Pascal, называемый объектом. Объект был введен в Turbo Pascal до создания Delphi. С появлением Delphi в новой версии языка Object Pascal объекты, для совместимости со старым программным продуктом, сохранены. Однако ныне использование объектов не актуально.

Класс представляет собой указатель. Однако в отличие от традиционных указателей это указатель особого типа: в нем нельзя использовать символ "^" при обращении к классу.

18.1. Инкаспуляция, наследование и полиморфизм

Класс, объединяя в себе поля, методы и свойства в единое целое, является законченной структурной единицей, предназначенной для решения отдельной задачи. Обычно такой задачей является задача разрешения некоторого круга сопутствующих проблем. Так, класс TRichEdit представляет собой мощный текстовой редактор rtf-файлов (файлов в формате Rich Text Format), который предназначен для организации просмотра и редактирования файла, сохранения и изменения размеров и типов шрифтов, поиска строк символов и многого другого. Такое объединение полей, методов и свойств в единое целое называется инкаспуляцией.

В языке существует множество классов (около 300), которые созданы разработчиками языка Object Pascal сотрудниками фирмы Inprise International для программистов, использующих среду Delphi. Такие классы можно назвать фирменными.

Программист, составляя программу, всегда создает свои пользовательские классы. Эти классы создаются либо неявно, когда программист конструирует программу визуальными средствами Delphi, а текст классов при этом составляет сама Delphi, либо явно, когда программист пишет код класса средствами языка Object Pascal.

Новый класс строится на основе другого, более простого, класса. Для этого в заголовке класса указывается его класс-родитель. Синтаксис заголовка нового класса имеет вид

type className = class (ancestorClass)

Здесь className имя нового класса; ancestorClass имя класса-родителя. Новый класс автоматически наследует поля, методы и свойства своего родителя и может пополниться своими полями, методами и свойствами. Это свойство классов называется наследованием. Возможность наследования позволяет, следуя методу от простого к сложному, создавать классы какой у