Программа "Архиватор"
Разработка программы "Архиватор" с помощью среды разработки Delphi. Аппаратные и технические средства, использованные при разработке. Общая характеристика среды разработки Delphi. Описание библиотеки ZLib. Порядок архивации файлов и распаковки архивов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 04.06.2015 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Департамент науки и образования Тюменской области
Государственное автономное образовательное учреждение
Среднего профессионального образования Тюменской области
«Западно-Сибирский государственный колледж»
(ГАОУ СПО ТО «ЗСГК»)
Курсовая работа
Тема работы: «Программа Архивация»
Содержание
Введение
1. Цель разработки
2. Задача разработки
3. Аппаратные и технические средства, использованные при разработке
4. Информация о среде разработки “Delphi”
5. Описание библиотеки Zlib
6. Применение программы
7. Исходный код программы
- Заключение
- Список использованной литературы
Введение
Основной причиной, по которой я выбрал тему курсового проекта «Разработка Архиватора» является то, что сжатие информации позволяет добиться уменьшения размера исходной информации для последующего ее использования.
Существует много всяких причин выделять ресурсы ЭВМ в расчете на сжатое представление, т.к. более быстрая передача данных и сокращение пространства для их хранения позволяют сберечь значительные средства и за частую улучшить показатели ЭВМ.
Сжатие, вероятно, будет оставаться в сфере внимания из-за возрастающих объемов, хранимых и передаваемых данных в ЭВМ, кроме того, можно использовать для преодоления некоторых физических ограничений, таких как, например, сравнительно низкая скорость Интернета.
Свою историю архиваторы берут ещё с тех времён, когда жёсткие диски были маленькие, и каждый (кб) был навес золота.
Архиватором удобно пользоваться ещё и потому, что он может из папки с множеством файлов и папок сделать один единственный файл.
1. Цель разработки
Цель данного курсового проекта разработка программы «Архиватор» с помощью среды разработки Delphi.
2. Задачи разработки
· Информация о среде разработки «Delphi»
· Поиск различной информации по теме «Архивация».
· Написание программы - архиватора.
3. Аппаратные и технические средства, использованные при разработке
При разработке использовались:
· Операционная система Windows 8.1
· Borland Delphi 7
Для нормальной работы программы требуется:
· ОЗУ не менее 256 МБ
· Не менее 2 Мб. на жестком диске
· Операционная система MS-DOS или Windows (любой версии)
Программа написаны с использованием стандартной библиотеки сжатия данных ZLib.
4. Информация о среде разработки “Delphi”
Delphi - императивный, структурированный, объектно-ориентированный язык программирования со строгой статической типизацией переменных. Основная область использования -- написание прикладного программного обеспечения.
Первоначально носил название Object Pascal и исторически восходит к одноименному диалекту языка.
Изначально среда разработки Delphi была предназначена исключительно для разработки приложений Windows, затем был реализован вариант для платформ Linux.
На сегодняшний день, наряду с поддержкой разработки 32 и 64-разрядных программ для Windows, реализована возможность создавать приложения для Apple Mac OS X, iOS, а также, в Delphi XE5, для Google Android.
Также предпринимались попытки использования языка в проектах GNU (например, Notepad GNU) и написания компилятора для GCC.
Object Pascal (Delphi) -- результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal -- динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемую интроспекцией -- данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.
Delphi является результатом функционального расширения Turbo Pascal.
Delphi for .NET -- среда разработки Delphi, а также язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET.
Первая версия полноценной среды разработки Delphi для .NET -- Delphi 8. Она позволяла писать приложения только для .NET. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0.
Структура программы
Каждая написанная программа на языке Delphi состоит из заголовка программы, поля используемых модулей Uses, который может не входить в саму структуру, а также блоков описания и исполнения.
program Project1; // Заголовок программы, с её именем «Project1»
uses
Forms,
Unit1 in 'Unit1.pas' {Form1}; // модули, которые подключены к проекту и используются программой
{$R *.res}
begin
Application.Initialize; // Инициализация приложения
Application.CreateForm(TForm1, Form1); // Создание формы/окна
Application.Run; // Запуск и исполнение
end.
Пример
Вывод сообщения «Hello, world!» в консольном приложении Delphi
program Helloworld; //название программы
{$APPTYPE CONSOLE} //директива компилятору о создании консольного приложения
begin
writeln('Hello, world!'); //вывод сообщения Hello, world!
readln; //ожидание нажатия клавиши пользователем
end.
Расширения файлов
· .pas -- исходный код модуля (pascal)
· .dpr -- исходный код проекта (pascal)
· .dproj -- исходный код проекта (xml)
· .dproj.local -- исходный код проекта (xml)
· .dfm -- исходный код формы
· .dpk -- скомпилированный пакет
· .dcu -- скомпилированный модуль
· .exe -- скомпилированное приложение
· .res -- ресурсы
· .dsk -- привязки к файлам
· .identcache -- кэшированные привязки к файлам
5. Описание библиотеки ZLib
ZLib -- свободная кроссплатформенная библиотека для сжатия данных, Является обобщением алгоритма сжатия данных DEFLATE, используемого в их компрессоре данных gzip. Первая публичная версия 0.9, выпущена 1 мая 1995 года для использования вместе с библиотекой libpng. Распространяется под лицензией zlib.
ZLib является стандартной библиотекой Delphi начиная с 7 версии.
ПО, использующее zlib
zlib широко применяется, к примеру, zlib и DEFLATE часто заменяют друг друга в текстах стандартов. Сотни приложений для Юникс-подобных ОС (например, Linux) используют zlib. Также она используется и на других платформах, например на Windows и Palm OS. Несколько значимых применений:
· Ядро Linux -- реализация сетевых протоколов со сжатием, прозрачное сжатие, интегрированное в файловые системы, сжатие загрузочного образа ядра для хранения на дисках (с распаковкой во время загрузки).
· libpng, реализация формата изображений PNG, использует DEFLATE для потокового сжатия данных.
· HTTP-сервер Apache использует zlib для реализации сжатия для протокола HTTP/1.1.
· Клиент и сервер OpenSSH, для опционального сжатия, поддерживаемого протоколом SSH.
· Библиотека GnuTLS также может использовать zlib для сжатия соединений Transport Layer Security.
· Пакет программ 1С:Предприятие версий 7.7 и 8 использует zlib для сжатия файлов своей базы данных (при файловом режиме организации данных) и данных в таблицах SQL (при серверной организации данных).
· Игра World of WarCraft использует zlib для сжатия больших объёмов трафика идущего от сервера к клиенту.
zlib используется и во встраиваемых устройствах.
Тип: библиотека для сжатия данных
Разработчик: Jean-loup Gailly, Mark Adler
Написана на: C
ОС: кроссплатформенное ПО
Версия: 1.2.3 -- 18 июля 2005
Лицензия: лицензия zlib
Сайт: http://zlib.net
6. Применение программы
Программа имеет интуитивно-понятный интерфейс.
После запуска программы пользователь видит основное окно программы.
Программа, осуществляет сжатие и/или упаковку одного и более файлов в архив или серию архивов для удобства переноса или хранения, а также распаковку архивов.
Простейшие архиваторы просто последовательно объединяют (упаковывают) содержимое файлов в архив. Архив должен также содержать информацию об именах и длине оригинальных файлов для их восстановления, поэтому большинство архиваторов также сохраняют метаданные файлов, предоставляемые операционной системой, такие, как время создания и права доступа. Многие архиваторы используют сжатие без потерь для уменьшения размера архива.
Сжатие данных
Программа, создавая архив, обрабатывает как текстовые файлы, так и бинарные файлы. Первые всегда сжимаются в несколько раз (в зависимости от архиватора), тогда как сжатие бинарных файлов зависит от их характера. Одни бинарные файлы могут быть сжаты в десятки раз, сжатие же других может и вовсе не уменьшить занимаемый ими объём.
Нахождение для любого входного файла программы наименьшего возможного размера, печатающей этот файл, является алгоритмически неразрешимой задачей, поэтому «идеальный» архиватор невозможен.
Сжатие данных обычно происходит значительно медленнее, чем обратная операция.
Архивация файлов
1. Кликаем на пустое меню
2. Кликаем на файл
программа архивация delphi
3. Нажимаем на кнопку «Архивировать»
4. Наш заархивированный файл готов
Распаковка архива
1. Кликаем на пустое меню
2. Кликаем на наш заархивированный файл в формате «SSA»
3. Нажимаем на «Распаковка»
7. Исходный код программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, zLib;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
PackS: TLabeledEdit;
Label1: TLabel;
PackD: TLabeledEdit;
PackDeg: TListBox;
GroupBox2: TGroupBox;
UnpackS: TLabeledEdit;
PackBtn: TBitBtn;
UnpackBtn: TBitBtn;
CheckBox1: TCheckBox;
StatusBar1: TStatusBar;
SaveDialog1: TSaveDialog;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
function SaveToZUP(filein,fileout:string;compression:TCompressionLevel):boolean;
function LoadFromZUP(filein:string):boolean;
procedure PackSClick(Sender: TObject);
procedure UnpackSClick(Sender: TObject);
procedure PackBtnClick(Sender: TObject);
procedure UnpackBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Const cBufferSize = 65536;
var
Form1: TForm1;
temp:THandle=0;
PackThread,UnpackThread:THandle;
implementation
{$R *.dfm}
function TForm1.SaveToZUP(filein,fileout:string;compression:TCompressionLevel):boolean;
var
ms:TMemoryStream;
OutFile:TStream;
ZStream: TCustomZLibStream;
filename:string[255];
begin
try
ms:=TMemoryStream.Create;
ms.LoadFromFile(filein);
OutFile:=TFileStream.Create(Fileout,fmCreate);
filename:=ExtractFileName(filein);
OutFile.Write(filename,sizeof(filename));
Try
ZStream:=TCompressionStream.Create(compression,OutFile);
Try
ZStream.CopyFrom(ms,0);
finally
ZStream.Free;
end;
finally
ms.free;
OutFile.Free;
result:=true;
end;
except result:=false;
end;
end;
function TForm1.LoadFromZUP(filein:string):boolean;
var
S,fileout: string[255];
Count: Integer;
InFile:TStream;OutFile:TMemoryStream;
ZStream: TCustomZLibStream;
Buffer: array[0..cBufferSize-1] of Byte;
begin
try
InFile:= TFileStream.Create(filein, fmOpenRead);
InFile.Read(S,sizeof(S));
try
OutFile:= TMemoryStream.Create;
try
ZStream:=TDecompressionStream.Create(InFile);
try
while True do
begin
Count:=ZStream.Read(Buffer,cBufferSize);
if Count <> 0 then OutFile.WriteBuffer(Buffer, Count)
else Break;
end;
finally ZStream.Free;
end;
finally
end;
finally
InFile.Free;
Try
fileout:=ExtractFilePath(filein)+S;
OutFile.SaveToFile(fileout);
finally
OutFile.Free;
end;
end;
except result:=false;
end;
result:=true;
end;
procedure Compress(lpvoid:pointer);
const compression:array[0..2] of TCompressionLevel=(clFastest,clDefault,clMax);
begin
try
form1.GroupBox1.Enabled:=false;
form1.GroupBox2.Enabled:=false;
form1.StatusBar1.SimpleText:='Архивирую…';
if form1.CheckBox1.Checked then SetThreadPriority(PackThread,THREAD_PRIORITY_HIGHEST);
if form1.SaveToZUP(form1.PackS.Text,ChangeFileExt(form1.PackD.Text,'.SSA'),compression[form1.PackDeg.ItemIndex])then
form1.StatusBar1.SimpleText:='Архивация закончена.'
else form1.StatusBar1.SimpleText:='Ошибка. Может Вы неправильно задали параметры.';
form1.GroupBox1.Enabled:=true;
form1.GroupBox2.Enabled:=true;
TerminateThread(PackThread,0);
except form1.StatusBar1.SimpleText:='Ошибка. Может Вы неправильно задали параметры.';
end;
end;
procedure Decompress(lpvoid:pointer);
begin
try
form1.GroupBox1.Enabled:=false;
form1.GroupBox2.Enabled:=false;
form1.StatusBar1.SimpleText:='Извлекаю...';
if form1.CheckBox1.Checked then SetThreadPriority(UnpackThread,THREAD_PRIORITY_HIGHEST);
if form1.LoadFromZUP(form1.UnpackS.Text)then
form1.StatusBar1.SimpleText:='Извлечение закончено...'
else form1.StatusBar1.SimpleText:='Ошибка. Может Вы неправильно задали параметры.';
form1.GroupBox1.Enabled:=true;
form1.GroupBox2.Enabled:=true;
TerminateThread(UnpackThread,0);
except form1.StatusBar1.SimpleText:='Ошибка. Может Вы неправильно задали параметры.';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
PackDeg.Selected[0]:=true;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TerminateThread(PackThread,0);
TerminateThread(UnpackThread,0);
end;
procedure TForm1.PackSClick(Sender: TObject);
begin
form1.SaveDialog1.Filter:='';
if form1.savedialog1.execute then
begin
PackS.Text:=form1.savedialog1.FileName;
PackD.Text:=changefileext(form1.savedialog1.FileName,'.ssa');
end;
end;
procedure TForm1.UnpackSClick(Sender: TObject);
begin
form1.SaveDialog1.Filter:='Файлы архива|*.ssa|Любые файлы|*.*';
if form1.savedialog1.execute then UnpackS.Text:=form1.savedialog1.FileName;
end;
procedure TForm1.PackBtnClick(Sender: TObject);
begin
if fileexists(PackS.Text)and(PackD.Text<>'')then PackThread:=CreateThread(0,0,@Compress,0,0,temp)
else form1.StatusBar1.SimpleText:='Ошибка. Может Вы неправильно задали параметры.';
end;
procedure TForm1.UnpackBtnClick(Sender: TObject);
begin
if fileexists(UnpackS.Text){and(UnpackD.Text<>'')}then UnPackThread:=CreateThread(0,0,@DeCompress,0,0,temp)
else form1.StatusBar1.SimpleText:='Ошибка. Может Вы неправильно задали параметры.';
end;
end.
Заключение
В процессе написания курсовой работы было собрано большое количество по теме: информация о среде разработки «Delphi», информации по теме «Архивация», написана программа-архиватор. Также была описана библиотека Zlib и обширно показано применение программы на практике.
В итоге получили готовый программный продукт, соответствующий теме курсовой работы «Разработка архиватора».
Все цели и задачи, поставленные в работе были выполнены.
Список использованной литературы
1. ZLib - библиотека для сжатия общего назначения:
2. Руководство по библиотеке ZLib -Режим доступа: http://zlib.net.ru
3. Википедия: Свободная энциклопедия - Режим доступа: http://ru.wikipedia.org
4. Сжатие данных: Крупнейший каталог ресурсов по сжатия данных - Режим доступа: http://compression.ru
5. Библиотека алгоритмов - Режим доступа: http://algolist.manual.ru
Размещено на Allbest.ru
...Подобные документы
История интегрированной среды разработки, версии Delphi. Организация библиотеки компонентов. Страница Additional, ряд часто используемых компонентов общего назначения. Исполняемый файл программы "Архиватор текстовых файлов", интерфейс приложения.
курсовая работа [1019,0 K], добавлен 16.05.2017Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Разработка собственного алгоритма сжатия и восстановления данных с использованием возможностей языка C++ в рамках программного продукта "Архиватор". Разработка алгоритма программы, ее первый запуск и тестирование. Проверка работы архивации файлов.
курсовая работа [325,7 K], добавлен 13.10.2015Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Выбор состава технических и программных средств для создания данного приложения "Экзаменатор", использование среды разработки Borland Delphi. Основные компоненты и спецификация программы. Используемые технические средства, описание и запуск программы.
курсовая работа [540,8 K], добавлен 18.07.2012Общая характеристика системы программирования Delphi, а также принципы создания ее компонентов. Описание значений файлов приложения, созданного с помощью Delphi. Структура и свойства библиотеки визуальных компонентов (Visual Component Library или VCL).
отчет по практике [1,1 M], добавлен 07.12.2010Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.
контрольная работа [703,8 K], добавлен 24.09.2012Исследование основных видов программ-архиваторов. Сжатие файлов при архивации. Показатель степени сжатия файлов. Оценка функциональности самых популярных программ-упаковщиков. Технические характеристики процессов сжатия. Методы архивации без потерь.
реферат [1,6 M], добавлен 05.12.2013Обзор средств программирования. Описание и свойства языка Delphi. Основания для разработки, ее назначение, предъявляемые требования, стадии разработки. Описание схемы основного модуля, процедур, программы. Используемые технические и программные средства.
курсовая работа [42,8 K], добавлен 25.02.2012Создание компьютерной игры посредством среды программирования Delphi. Инструменты разработки, компоненты и методы для разработки программы. Логическая и физическая структуры, основные функции и элементы управления программы, ее тестирование и отладка.
курсовая работа [27,9 K], добавлен 26.07.2014Жизненный цикл программного продукта. Современные среды разработки приложений. Защита информации в базах данных. Особенности разработки приложения с помощью среды Delphi 7. Проверка программного модуля на предмет соответствия стандартам кодирования.
отчет по практике [589,0 K], добавлен 18.05.2017Разработка головоломки на основе гравюры Альбрехта Дюрера "Магический квадрат". Главные составные части среды программирования Delphi, особенности ее стандартных компонентов и процесса сохранения программы. Компоненты и алгоритмы создаваемой программы.
курсовая работа [147,1 K], добавлен 05.02.2015Описание назначения всех команд меню WinRar. Создание и распаковывание архивов для текстовых, графических и системных файлов. Примеры создания архивов с опциями: пароль, многотомный и самораспаковывающийся архивы. Теоретические основы сжатия файлов.
контрольная работа [2,3 M], добавлен 07.07.2013Общая характеристика Delphi как интегрированной среды разработки программного обеспечения. СУБД Access, ее возможности. Создание базы данных в Access для комиссионного букинистического магазина. Создание запросов и фильтров. Описание работы программы.
курсовая работа [3,1 M], добавлен 25.05.2015Общая характеристика, достоинства и недостатки среды разработки приложений Microsoft Visual Basic. Структура программы для редактирования изображений, аппаратные и программные средства ее создания и эксплуатации. Описание объектов и их взаимодействия.
курсовая работа [3,9 M], добавлен 26.12.2012Обоснование языка программирования Object Pascal и среды разработки Delphi. Создание интерфейса пользователя. Проектирование структуры и описание компонентов, использованных при разработке программного продукта. Составление инструкции пользователя.
курсовая работа [888,7 K], добавлен 20.05.2015Разработка программы для решения нелинейных уравнений различными численными методами: с помощью дискриминанта и таблицы Горнера, теоремой Виетта. Требования к интерфейсу. Компоненты среды Delphi, использованные в программе. Реализация и тестирование.
курсовая работа [1,3 M], добавлен 20.04.2011Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.
курсовая работа [1,5 M], добавлен 08.02.2011Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.
курсовая работа [1,3 M], добавлен 25.11.2014Сущность метода Гаусса при решении систем линейных уравнений. Элементарные преобразования этого метода. Краткое описание среды визуальной разработки Delphi. Описание основных применяемых процедур и алгоритм роботы программы по решению уравнений.
курсовая работа [1,1 M], добавлен 29.08.2010