Одним із завдань різних пакувальників та архіваторів є перевірка стискається файлу на стисливість. Іншими словами, перевірка на те, чи варто витрачати час на стиск нестисливого файлу, або залишити його в незмінному вигляді.
Розглянемо алгоритм перевірки файлу на стисливість. Алгоритм реалізований звичайними засобами Delphi 5 з використанням функцій FileOpen, ReadFile і FileClose.
Теоретично, нестисливий файл, це файл, частоти байт від 0 до 255 якого знаходяться приблизно в одному діапазоні величин. Тобто частота кожного символу приблизно дорівнює 0,39%. Розрахунки ведуться на файлах, довжина яких більше 10 Кб. Якщо підсумувати всі частоти, то в результаті отримаємо 100%.
Стискувані файли - це файли, розкид частот яких дуже великий. Наприклад, в звукових файлах (формат WAV) частота деяких байт доходить до десятків відсотків, а інших - до сотих відсотка. У текстових файлах деякі байти взагалі не зустрічаються.
Отже, розглянемо етапи визначення стисливості файлу:-
Читання файлу в пам'ять
Підрахунок частот символів (словника файлу)
Висновки про стисливості файлу
Читання файлу в пам'ять:
Підрахунок частот символів:
Після це кроку в кожному осередку масив "a" знаходиться кількість зустрінутих символів, код яких дорівнює номеру комірки.
Якщо підсумувати значення всіх осередків масиву, то отримаємо число, рівне розміру файлу.
Перевірка на вже стислі дані:
Змінні x1 і x2 вказують процентний діапазон, в якому відбувається порівняння. Якщо кількість символів з частотою з цього процентного діапазону більше четвертої частини всіх символів, то можна стверджувати, що файл вже пройшов процедуру стиснення.
Підсумки тестування алгоритму:
Дана процедура порівняння пройшла випробування на файлах декількох типів. Зауваження: параметр "нове стиснення" вказує на новий розмір файлу після його стиснення архіватором WinRar з максимальним ступенем стиснення.-
RAR-архів (187 КБ) стиснутий (нове стиснення = 187 Кб)
WAV-файл (306 КБ) НЕ стиснутий (нове стиснення = 187 Кб)
BMP-файл (938 КБ) НЕ стиснутий (нове стиснення = 259 Кб)
DOC-файл (62 КБ) НЕ стиснутий (нове стиснення = 13 Кб)
JPG-файл (167 КБ) стиснутий (нове стиснення = 168 Кб)
MP3-файл (652 КБ) стиснутий (нове стиснення = 639 Кб)
TXT-файл (131 КБ) НЕ стиснутий (нове стиснення = 17 Кб)
HLP-файл (337 КБ) НЕ стиснутий (нове стиснення = 104 Кб)
PDF-файл (1763 КБ) НЕ стиснутий (нове стиснення = 1558 Кб)
EXE-файл (395 КБ) НЕ стиснутий (нове стиснення = 168 Кб)
EXE-файл (упакований ASPack) (177 КБ) стиснутий (нове стиснення = 172 Кб)
Як видно з дослідів, алгоритм успішно показує стискувані і не дуже стискувані файли.
Apache - це кросплатформаенное програмне забезпечення, що відноситься до класу http-серверів. Підтримується безліччю операційних систем: Windows, Linux, MacOS і т.д. Одним з ключових чинників в питанні використання даного web-сервера є сучасною функціональністю та надійність виконання операцій. Apache включає в себе безліч додаткових модулів, що дозволяють працювати з різними базами даних, контролювати аутентифікацію користувачів і т.д.