Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2010, 20:33   #1
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию Архиватор на делфи

какие нужны компоненты и вобще как это делаеться на делфи?
Просто уменя zipmaster, разархивировать нашёл как а как архивировать нет
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 21.07.2010, 10:46   #2
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

писал я свой архиватор с помощью быблиотеки ZLIB, т.к. фирма не имеет право распостраннять левое ПО, вот и пришлось писать свой (скорость архивирования и разархивирования выше чем у ВинРара, но сжимает на 5-10% хуже), создал свой алгоритм создания архива, упаковывал: папки со вложенными папками и файлами, отдельные файлы. Но архив можно извлечь только с помощью моего архиватора. А если хотите, чтобы ВинРаром открывался, то здесь будет нужен алгоритм их сжатия, да и зачем заморачиваться все-равно лучше ВинРара не сделаете.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 21.07.2010, 11:01   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
писал я свой архиватор с помощью быблиотеки ZLIB
А можете вылажить компонент? Просто мне не обязательно сильно жимать.
Цитата:
скорость архивирования и разархивирования выше чем у ВинРара
эта даже и лучше
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 21.07.2010, 11:23   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

поищите TurboPower Abbrevia
бесплатный компонент.
Есть документация и примеры (правда, всё на английской мове)...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.07.2010, 15:17   #5
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от dmitriegorovih Посмотреть сообщение
А можете вылажить компонент?
ZLIB - библиотека, идет в составе делфи начиная с 7-ки и старше
в гугиле все подробно расписано как ней пользоваться, наверняка и на этом форуме немало тем.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 21.07.2010, 15:23   #6
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Я когда то писал архиватор на ZLIB,если исходник найду выложу.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 23.07.2010, 10:27   #7
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
TurboPower Abbrevia
Скачал по примерам нашел как архивировать
Код:
var
  ToStream : TMemoryStream;
begin
 ToStream := TMemoryStream.Create;
 try
 image1.Picture.Bitmap.SaveToStream(Tostream);
 AbZipKit1.AddFromStream('5.png',tostream);
 finally
 ToStream.Free;
 end;
Но вот что интересно если я загружу картинку в инспекторе обьектов в image
то при занесении в stream вопервых она стираеться, во вторых в архиве png(ка) 0 байт. Теперь сам вопрос как туда заархивировать картинку так чтобы она не стиралась?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 23.07.2010, 10:38   #8
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

FileStream вам в помощь
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.07.2010, 10:44   #9
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
FileStream вам в помощь
Не всё равно даже ещё какаята ошибка выскакивает. Вобще даже в архив не записывает.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 23.07.2010, 11:22   #10
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Архивирование с помощью ZLIB
Код:
var
  ComStream: TZCompressionStream;
  Source: TFileStream;
  Dest: TMemoryStream;
.....
  Dest := TMemoryStream.Create;
  try 
    Source := TFileStream.Create('Путь к файлу', fmShareDenyNone);
    try
      ComStream := TZCompressionStream.Create(Dest);
      try
        ComStream.CopyFrom(Source, 0);
      finally
        freeAndNil(ComStream);
      end;
    finally
      FreeAndNil(Source); 
    end;
    Dest.SaveToFile('Имя файла');
  finally
    FreeAndNil(Dest); 
  end;//это при условии, что архивируемый(мые) файл(ы) имеет не большой размер(это зависит сколько оперативы будет есть TMemoryStream)
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Архиватор Хаффмана zetrix Софт 17 15.03.2014 13:45
Консольный архиватор Alex Cones Софт 12 14.04.2010 12:53
Архиватор DMITRIG Общие вопросы C/C++ 2 03.05.2008 14:36
Архиватор Mcc_1 Фриланс 4 18.12.2007 18:19
Архиватор. Elektronbrain Фриланс 51 10.02.2007 10:09