Разработка программы сжатия и восстановления файлов с помощью фиксированного блочного кода постоянного смещения
Состав работы
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Используемые компоненты среды Delphi:
1. SaveDialog, OpenDialog. Копомненты необходимые для чтения и сохранения файлов, а так же получения названия файла и его пути до него.
2. Button - компонент кнопка.
3. ListBox - компонент, состоящий из строк, хранит кодовые слова.
4. ProgressBar - компонент, необходимый для отслеживания этапов выполнения программы.
5. Label - компонент для вывода строковых данных.
Краткое описание работы приложения:
1. При нажатии кнопки Button1 “Считать для сжатия” происходит получение имени считываемого файла и пути до него. Измеряется размер файла (функция FileSize). Полностью очищаются Label.
2. При нажатии кнопки Button2 “Проверить” происходит обнуление всех необходимых для работы переменных. Запускается процесс считывания (по-байтово) и анализа сжимаемого файла, в результате которого высчитывается средняя длинна кодового слова. Она необходима для определения возможности сжатия. В зависимости от полученного результата выводится сообщение о том, что файл можно сжимать, в противном случае, что нельзя. Так же формируется массив частот повторений символов в файле, необходимый для соотнесения кодовых слов и символов в файле.
3. При нажатии Button3 “Сжать” происходит побайтовое считывание сжимаемого файла с помощью команды BlockRead. Далее происходит соотнесение считанного байта кодовому слову. Алгоритм соотнесения основан на частоте появлений символов в файле. Чем чаще данный символ встречается в файле, тем меньшей длинны ему присваивается кодовое слово. Запись нового файла производится с помощью команды BlockWrite так же по-байтово. Новому файлу присваивается новое расширение. Когда файл полностью считан, выполняется проверка на наличие оставшихся битов. Если таковые имеются, то пустое пространство забивается нулями до тех пор, пока количество битов не будет равно 8.
4. При нажатии Button4 “Считать для восстановления” происходит получение имени сжатого файла, пути до него.
5. При нажатии Button5 “Восстановить" происходит побайтового считывание файла. Алгоритм разжатия состоит из двух этапов. На первом этапе происходит считывание файла блоками размером в 1 байт. Производится запись считанных байтов в специальную переменную. Когда длина переменной составляет 16 символов или более, начинается анализ считанной информации. Производится проверка на соответствие кодовым словам и последующая запись полученных значений в новый файл. На втором этапе производится проверка на остаток и удаление лишних данных (случай, когда было выполнено дополнение нулями при сжатии).
1. SaveDialog, OpenDialog. Копомненты необходимые для чтения и сохранения файлов, а так же получения названия файла и его пути до него.
2. Button - компонент кнопка.
3. ListBox - компонент, состоящий из строк, хранит кодовые слова.
4. ProgressBar - компонент, необходимый для отслеживания этапов выполнения программы.
5. Label - компонент для вывода строковых данных.
Краткое описание работы приложения:
1. При нажатии кнопки Button1 “Считать для сжатия” происходит получение имени считываемого файла и пути до него. Измеряется размер файла (функция FileSize). Полностью очищаются Label.
2. При нажатии кнопки Button2 “Проверить” происходит обнуление всех необходимых для работы переменных. Запускается процесс считывания (по-байтово) и анализа сжимаемого файла, в результате которого высчитывается средняя длинна кодового слова. Она необходима для определения возможности сжатия. В зависимости от полученного результата выводится сообщение о том, что файл можно сжимать, в противном случае, что нельзя. Так же формируется массив частот повторений символов в файле, необходимый для соотнесения кодовых слов и символов в файле.
3. При нажатии Button3 “Сжать” происходит побайтовое считывание сжимаемого файла с помощью команды BlockRead. Далее происходит соотнесение считанного байта кодовому слову. Алгоритм соотнесения основан на частоте появлений символов в файле. Чем чаще данный символ встречается в файле, тем меньшей длинны ему присваивается кодовое слово. Запись нового файла производится с помощью команды BlockWrite так же по-байтово. Новому файлу присваивается новое расширение. Когда файл полностью считан, выполняется проверка на наличие оставшихся битов. Если таковые имеются, то пустое пространство забивается нулями до тех пор, пока количество битов не будет равно 8.
4. При нажатии Button4 “Считать для восстановления” происходит получение имени сжатого файла, пути до него.
5. При нажатии Button5 “Восстановить" происходит побайтового считывание файла. Алгоритм разжатия состоит из двух этапов. На первом этапе происходит считывание файла блоками размером в 1 байт. Производится запись считанных байтов в специальную переменную. Когда длина переменной составляет 16 символов или более, начинается анализ считанной информации. Производится проверка на соответствие кодовым словам и последующая запись полученных значений в новый файл. На втором этапе производится проверка на остаток и удаление лишних данных (случай, когда было выполнено дополнение нулями при сжатии).
Другие работы
Трагедия глазами комедии: о принципе пародии у Аристофана
evelin
: 24 февраля 2014
Начало изучению темы «трагики и трагическое в комедии» было положено уже эллинистическими комментаторами; пародийные принципы Аристофана описаны, и не раз, в специальных трудах, посвященных как отдельным комедиям, так и творчеству афинского комедиографа в целом. Неоднократно отмечены все цитаты (слова, словосочетания, стихи и полустишия), привлеченные Аристофаном из текстов трагедий, и охарактеризованы их функции (собственно комическая, критическая или нейтральная), рассмотрены языковые и стилис
5 руб.
Суров Г.Я. Гидравлика и гидропривод в примерах и задачах Задача 14.1 Вариант 7
Z24
: 18 октября 2025
Определить момент Мм, развиваемый гидромотором, полезную мощность Nп и частоту вращения nм вала гидромотора, если давление насоса равно рн, перепад давления на гидромоторе Δрм, подача насоса Qн, рабочий объем гидромотора qм. Схема гидропривода представлена на рис. 14.3. Механический и объемный КПД гидромотора соответственно ηм.м = 0,9, ηм.о = 0,92. Потери напора в гидролиниях не учитывать. Плотность рабочей жидкости ρм. Площадь проходного отверстия дросселя ωдр, коэффициент расхода дросселя μдр.
150 руб.
Механика жидкости и газа ВлГУ Контрольное задание 1 Задача 6 Вариант 10
Z24
: 22 декабря 2025
Определить силу давления на коническую крышку горизонтального цилиндрического сосуда диаметром D, заполненного жидкостью Ж (рис.6). Показание манометра в точке его присоединения — рм. Показать на чертеже вертикальную и горизонтальную составляющие, а также полную силу давления.
180 руб.
Зашита информации. Лабораторные работы №1-5. Общий вариант.
Bodibilder
: 6 июня 2019
Лабораторная работа №1
Тема: Шифры с открытым ключом (Глава 2)
Задание:
1. Написать и отладить набор подпрограмм (функций), реализующих алгоритмы возведения в степень по модулю, вычисление наибольшего общего делителя, вычисление инверсии по модулю.
2. Используя написанные подпрограммы, реализовать систему Диффи-Хеллмана, шифры Шамира, Эль-Гамаля и RSA, в частности:
2.1. Для системы Диффи-Хеллмана с параметрами p = 30803, g = 2, XA = 1000, XB = 2000 вычислить открытые ключи и общий секретный клю
30 руб.