Реферат по предмету "Программирование"


Файловая оболочка (Delphi 30 )

1. Постановка задачи.
Задача заключается в разработке файловой оболочки для операционной системы Windows’95/98. В программе реализовать механизмы копирования, переноса, удаления, переименования файлов и директорий, поиск файлов по маске, просмотр списка файлов по маске, просмотр и редактирование файлов во внешних редакторах, присвоение и получение атрибутов файла, присвоение атрибутов группе файлов, запуск приложений со строкой параметров, создание директории, определение размера директории, получение информации о диске, настройки интерфейса программы, определение суммарного объёма дискового пространства занимаемого группой файлов, восстановление интерфейсных параметров при повторном запуске программы. Так же обеспечить управление оболочкой при помощи манипулятора типа «мышь» и клавиатуры.
2. Метод реализации.
Для реализации поставленной задачи необходимо создать интерфейс пользователя состоящий из таких компонент:
А) список директорий.
Б) список файлов
В) список дисков
Г) главное меню программы
Д) панель инструментов.
Для организации интерфейса пользователя будут использованы стандартные визуальные компоненты Delphi 3.0. Для реализации механизма копирования/вставки[1] необходимо запомнить список копируемых файлов/директорий, каждый элемент списка должен содержать информацию о месте нахождения файла/директории и имени файла/директории. При копировании группы файлов или одного файла необходимо определить их место положение в иерархии каталогов, а затем заполнить список, выбирая все файлы отмеченные пользователем из списка файлов показанного в интерфейсной части программы (списке файлов). При копировании директории необходимо также определить её положение и произвести сканирование самой директории с сохранением в списке имён файлов содержащихся в копируемой директории и структуры каталогов. Для вставки директории в место копирования, необходимо воссоздать её структуру, а затем скопировать в неё файлы. Для осуществления этого процесса вышеупомянутый список разбивается на два. В первом списке (назовем его временный список директорий) должна находиться структура каталогов, а во втором (временном списке файлов) расположенные в этих каталогах файлы. Два списка необходимы для уменьшения времени затраченного на копирование, так как при наличии одного списка необходим анализ каждого элемента списка на предмет наличия поддиректорий и создание этих поддиректорий в месте копирования, а в копируемой директории в большинстве случаев количество директорий меньше чем количество файлов и времени на проверку понадобиться больше, чем при использовании двух списков. Если же использовать два списка то для воссоздания структуры каталогов необходимо лишь отсортировать временный список директорий в соответствии с иерархией каталогов, и создавать директории проходя по списку сверху вниз. Так как после сортировки, директории расположенные на верхних уровнях вложенности каталогов будут находиться в верхней части списка, а директории расположенные на нижних уровнях будут находиться в конце списка. После воссоздания структуры директории остаётся только переписать файлы. Алгоритм заполнения временных списков показан на рисунке 1 в виде блок схемы. Реализация данного алгоритма будет базирована на использовании функций FindFirst и FindNext, эти функции осуществляют просмотр содержимого указанной директории и в качестве результата возвращают имя найденного элемента, его атрибуты, время создания и размер. При анализе атрибутов найденного элемента можно определить данный элемент директория или файл, и в соответствии с анализом записать его имя и положение в соответствующий список. На описанном алгоритме будет базирован также механизм удаления директории. Упомянутые выше функции FindFirst и FindNext будут также применены при реализации механизма поиска файлов по маске.
3. Описание программы.
Программа реализована на языке паскаль с использованием Delphi 3.0 - среды визуального программирования приложений для Windows’95 .
Детально рассмотрим реализацию некоторых механизмов, таких как:
. Поиск файлов;
. Копирование Директорий;
. Удаление директорий.
Поиск файлов:
Поиск файлов в программе реализован с использованием маски. В маске возможно использование служебного символа, замены группы неизвестных символов в имени файла, или его расширении «*», а также возможен поиск с различием регистров символов, и без такового, с указанием области поиска. Так же существуют возможности поиска с наложением дополнительных ограничений, таких как размер искомого файла, а так же времени создания файла. Детально с реализацией выше перечисленных механизмов вы можете ознакомиться в приложении 1 на страницах (29-35). Здесь же, мы рассмотрим реализацию основной части этого механизма.
Для поиска файлов по маске необходимо задание маски поиска в виде *.сом или autoexec.*, или другие возможные варианты, и области поиска[2]. В качестве дополнительного параметра может быть задана проверка регистра символов. Блок схема поиска файлов показана на рисунке 1. При поиске используется рекурсивная процедура (текст 1.) в которой последовательно просматривается область поиска, включая
Текст 1.
Procedure TFindForm.FindInCurrentDir(CurDir:string);
Var
SizeF:integer; i:integer;
EndList:boolean;
F:TSearchRec;
D:string; begin
{Вывод в статус строке директории в которой производится поиск}
FindForm.StatusFind.Panels[1].Text:=CurDir;
FindFirst(CurDir+'*.*',faAnyFile,F);
FindNext(F); repeat
// Проверка расширенного поиска
If FindForm.CBAdvSearch.Checked and (F.AttrfaDirectory) then begin
// Проверка на размер найденного файла
// размер и время создания найденого файла должны находится в пределах заданных
// пользователем if not(((F.Size
(F.Size > StrToInt(FindForm.SGreater.Text)))) then
Continue; if not(((FileDateTime(CurDir+F.Name)
FindForm.DateIsAfter.Date))) then Continue; end;
// проверить не является ли найденый файл директорией if F.Attr=faDirectory then if (F.Name'.') and (F.Name'..') then begin
// если найденный файл – директория , рекурсивный вызов поиска в данной директории
FindInCurrentDir(CurDir+F.Name+''); end; if (F.Name'..') and (F.Name'.') then
// если файл подходит под маску, занести его в список if CompareFileWithMask(F.Name) then begin
FindForm.FileWasFind.Items.Add(CurDir+F.Name);
FindForm.StatusFind.Panels[0].Text:=IntToStr(StrToInt(FindForm.StatusFind.Pa nels[0].Text)+1);
FindForm.FileWasFind.Refresh; end;
// выполнять поиск пока не закончатся файлы в текущей области заданной области.
Until((FindNext(F) 0));
FindClose(F); end;
подкаталоги, сравнивается имя найденного файл с маской поиска, и если все наложенные ограничения выполнены, найденный файл заносится в список предлагаемый пользователю для просмотра. Для организации поиска в разных областях изменяется лишь место первого вызова рекурсивной процедуры.
В форме поиска файлов возможен переход к выбранному файлу, из списка найденных, а также запуск либо просмотр/редактирование во внешнем редакторе.
Копирование / Удаление директорий:
Описанная выше реализация алгоритма поиска файлов применёна в реализации копирования и удаления директорий[3]. При реализации рассматриваемых процессов понадобится наличие двух временных списков: списка директорий и списка файлов (каждая строка обоих списков включает в себя «полный путь» (FULL PATH)) файла/директории. Для реализации временных списков использован визуальная компонента ListBoх, данная компонента представляет собой динамический список строк и набор процедур и функций для управления этим списком. Заполнение этих списков осуществляется при помощи просмотра директории. С листингом программы реализующем эти процессы вы можете ознакомиться в приложении 1 на страницах (17,23-27). Для копирования/удаления директорий составляются оба вышеупомянутых списка. При вставке директории создаётся полное дерево директории, а затем происходит копирование файлов[4]. При удалении директории так же составляются оба списка, но так как стандартной процедуры удаляющей не пустую директорию нет, то в начале удаляются все файлы в удаляемой директории (включая файлы находящиеся в поддиректориях), а затем пустые директории.
4. Анализ результатов.
Программа имеет все необходимые функции работы с файлами. Все функции можно активизировать нажатием комбинации клавиш. Производиться статистика копирования, переноса, удаления файлов/директорий в удобной для восприятия пользователем форме. Существует простой механизм наложения фильтра на показываемые файлы. При изменении интерфейса программы, все изменения сохраняются и будут восстановлены при следующем запуске. Запуск приложений со строкой параметров с указанием типа запуска. Вывод сообщения о количестве поддиректорий в директории и о количестве файлов расположенных в ней. Определение размера директории присвоение атрибутов группе файлов простым нажатием двух клавиш.
5. Выводы. В ходе работы была разработана программа манипулирования файлами и директориями. В программе реализованы следующие механизмы: копирования, переноса, удаления, переименования файлов и директорий, поиск файлов по маске, наложение фильтра на список файлов, просмотр и редактирование файлов во внешних редакторах, присвоение и получение атрибутов файла, присвоение атрибутов группе файлов, запуск приложений со строкой параметров, создание директории, определение размера директории, получение информации о диске, настройки интерфейса программы, определение суммарного объёма дискового пространства занимаемого группой файлов, восстановление интерфейсных параметров при повторном запуске программы. Программа имеет удобный интерфейс и может использоваться для работы пользователями с разным уровнем знаний. Системные требования: Операционная система Windows’95 и выше, 500 килобайт дискового пространства.
6. Литература. П. Туротт, Г. Брент, Р. Багдазиан, С.Тендон «DELPHI 3», DiaSoft, Киев, 1997 г.
----------------------- [1] Механизм копирования разбит на две части копирование/вставка исходя из предпологаемого интерфейса программы 2 Возможны 3 области поиска: поиск в текущей директории; поиск на текущем диске; поиск на всех жестких дисках (также сетевых). 3 Перенос директорий не рассматривается ввиду того, что его алгоритм является последовательной комбинацией алгоритма копирования и алгоритма удаления. 4 Если объём копируемых файлов превышает объём пустого места в месте назначения, копирование произведено не будет


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Монопольный источник потенциального магнитного поля
Реферат Организация государственного контроля за соблюдением правил торговли на примере магазина "Магнит"
Реферат Болезни сердца. Профилактика
Реферат Повелитель мух. Голдинг Уильям
Реферат Стратегия рекламы
Реферат А. Н. Островский Жестокие нравы
Реферат Остен-Сакен, Фабиан Вильгельмович
Реферат Адвокатура понятие, роль в обществе, основные принципы
Реферат Экзаменационные вопросы и билеты по криминологии за весенний семестр 2011 года
Реферат Стимулирование самостоятельной деятельности в формировании стержневых интересов у старшеклассников с широкими интересами
Реферат Использование методики сотрудничества в процессе обучения иностранному языку на примере средней
Реферат Физическая культура - часть общечеловеческой культуры
Реферат Синтаксические и функционально-семантические особенности употребления условного наклонения в итальянском языке
Реферат Психология фиолетового цвета
Реферат Пути совершенствования управления маркетинговой деятельностью (на приме СПК «Родина» Стерлитамакского района РБ).