![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
:Приветствую
Хочу вот разобрать такой вопрос: Как мона программно заархивировать и разархивировать файлы? Исследуемый архив содержит несколько файлов. При запуске программы нужно его разархивировать куда надо, а, поработав с его файлами, заархивировать их обратно. Если есть маленькие проги-архиваторы (любые, желательно поменьше размером), то посоветуйте. Вот, помогите. плз -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
поищи по форуму, это не первый топик
|
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Компонентики есть :-)
Если дашь мыло - вышлю ![]() Сам использую, и хелп есть. Это сообщение отредактировал(а) Marriage - 25.1.2005, 15:41 -------------------- Praemonitus, praemunitus |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
А мне? интересно что это за алгоритм такой, небось ppm2 извращенный. |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
||||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Мда ...
С моим траффиком до конца месяца ничего не получиться ... ДАю Линк ... ZipForge, 2.40 http://soft.mail.ru/program_page.php?grp=7112 Юзайте на здоровье. -------------------- Praemonitus, praemunitus |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
ZipForge, 2.40 Знаем знаем, только это старье уже есть 2.59 и
вообще лутше всего качать с офф сайтов. |
|||
|
||||
Dark Wanderer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 25.10.2004 Где: Кишинёв Репутация: нет Всего: нет |
Ещё есть FlexCompres. Создатели обещают сжати лучше чем у WinRar, в чём и убедился. В компоненте есть функция шифрования.
--------------------
|
|||
|
||||
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
Marriage, гуд! А поменьше нету компонентика?
-------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Budy
Поискал бы, да траффика осталось 8 метров до 1 февраля ... ![]()
Архив называется zf_259, наверно это и есть последние ![]() Это сообщение отредактировал(а) Marriage - 26.1.2005, 16:30 -------------------- Praemonitus, praemunitus |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Это нужно перепробовать кучу компонентов и определить, который тебе больше подходит. Вряд ли кто задавался этой целью. Как правило на 2-м - 3-м компоненте находят наиболее подходящий и успокаиваются.
Я использую компонент, который дает минимальный размер программы 100кб (без использоватия Forms). А использовать стандартный ZLib не пробовал? Может для твоих целей хватит и этого? |
|||
|
||||
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
ZLib
![]() Добавлено @ 20:10 Мнето впринципе любой, даже без сжатия мона. Главно чтоб мона было 12 файлов в один объединить -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 6 Всего: 137 |
Может, тогда самому можно написать, без сжатия?
![]() |
|||
|
||||
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
Каким образом? У меня 4 шт. BMP, 7 шт. TXT и 1 шт. со своей кодировкой.
Ха, я раньше пробовал такой ерундой заниматься, делал так: Для каждого из n файлов сначала записывал его размер с пробелами на конце, чтоб потом считавать удобно было (ex: '1234 '), т.е. скока в нем символов, а потом попорядку переписывал символы из етого файла в свой. Разкодировка аналогична. Вот тока с большими файлами (>2 Mb) тормозит. Хотя работает отлично ![]() Ну, принципе такой свой код меньше текста в проге займет ![]() Добавлено @ 08:22 А, забыл совсем, мне зачем архивто надо! чтоб без запуска программы мона было и самому посмотреть что там. -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Вариант №1 - засунуть все в ресурс.
Вариант №2:
При сохранении количество файлов известно. offset первого файла будет (SizeOf(TFileNfo)+1)*kolvo. Заполняешь структуру первого файла, прописываешь в файл. К смещению первого файла прибавляешь его размер, получаешь смещение второго. Пишешь второй и т.д. Потом делаешь структуру, где имя файла=''; Тоже запихиваешь в файл. Потом просто туда же загоняешь файлы. В результате у тебя в начале файла будет список файлов с именами, размерами и смещением в файле. Читать файл просто: Считываешь заголовки. Находишь нужное имя. Получаешь смещение, делаешь Seek в это место, делаешь BlockRead размером файла. Все файл в памяти. Работает очень быстро, особенно, если сразу считать все заголовки в память, а не считывать каждый раз. Для файлов до 100Мб будет работать быстрее архиватора. На винте, правда, будет занимать побольше, но инсталлящию можно также целиком в архив запихать, так что размер тут не пострадает. |
|||
|
||||
Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Вот набросал решение. Немного корявенько, но работает.
Если хорошо печесать репу, то можно оптимизировать по скорости. Если еще сильнее почесать, то можно написать класс для работы с файлами AllInOne;
Пример сохранения нескольких файлов в один. (Примеры на текстовых файлах, но подойдут и любые другие)
А теперь пример чтения файла. Чтение идет в TMemoryStream, потому что почти все компоненты, несущие информацию имеют функцию LoadFromStream;
|
||||||
|
|||||||
Budy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 616 Регистрация: 6.2.2004 Где: Екатеринбург Репутация: 1 Всего: 2 |
Snowy, отлично! Код посмотрел вроде должно сработать, счас попробую.
![]() -------------------- Как ты назовешь свой корабль, так на нем и напишут ![]() |
|||
|
||||
dimonskif |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 6.1.2006 Репутация: нет Всего: нет |
А чтобы разархивировать
![]() |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Угу. Это не трудно было и самому проверить ;)
Добавлено @ 09:11 Кстати, если тебе нужно просто сохранять, то вместо TMemoryStream используй TFileStream. |
|||
|
||||
ne0n |
|
|||
PlayBoy ![]() ![]() Профиль Группа: Участник Сообщений: 733 Регистрация: 5.8.2005 Где: Н.Новгород Репутация: 1 Всего: 11 |
Вот хороший пример, сам использовал для создания BackUp'ов, при помощи ZLib:
|
|||
|
||||
hairbaton |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.3.2009 Репутация: нет Всего: нет |
Пытаюсь склеить 2 файла методом
Файл result создается, но не проигрывается. Собственно вопрос в чем дело и что я не так делаю, и можно ли вообще таким методом склеить эти 2 wav файла? Я посмотрел много источников, но так и не нашел нормального объяснения соединения 2 wav файлов. Это сообщение отредактировал(а) hairbaton - 25.3.2009, 22:43 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
hairbaton, файлы не так склеиваются , да и wav файлы просто так не склеишь
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
и это в тяпницу вечером такие вот вопросы, а, это ж издевательство над мосгом
![]() |
|||
|
||||
hairbaton |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.3.2009 Репутация: нет Всего: нет |
Может тогда можно как-то просто склеить midi файлы?
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
hairbaton, ты так и не понял? ты говоришь о склеивании файлов в теме об архивировании! Создай новую тему, дай осмысленное название и опиши проблему.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |