МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Файловая оболочка (Delphi 30 )

    Файловая оболочка (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.Attr<>faDirectory) then

    begin

    // Проверка на размер найденного файла

    // размер и время создания найденого файла должны находится

    в пределах заданных

    // пользователем

    if not(((F.Size < StrToInt(FindForm.SLess.Text)) and

    (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 Если объём копируемых файлов превышает объём пустого места в месте

    назначения, копирование произведено не будет


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.