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

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

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

Восстановить пароль

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

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

Цитата:
TZCompressionStream
А что это такое и с какого он модуля?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 23.07.2010, 11:38   #12
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

в 2009-м модуль 'ZlibEx' в uses подключаешь и юзаешь.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.07.2010, 11:53   #13
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

День какойто не везучий у меня А как запихать Stream image(а)?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 23.07.2010, 11:58   #14
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от dmitriegorovih Посмотреть сообщение
День какойто не везучий у меня А как запихать Stream image(а)?
Код:
var
  ComStream: TZCompressionStream;
  Source: TFileStream;
  Dest: TMemoryStream;
.....
  Dest := TMemoryStream.Create;
  try 
    Source := TFileStream.Create('C:\5.png', fmShareDenyNone);
    try
      ComStream := TZCompressionStream.Create(Dest);
      try
        ComStream.CopyFrom(Source, 0);
      finally
        freeAndNil(ComStream);
      end;
    finally
      FreeAndNil(Source); 
    end;
    Dest.SaveToFile('C:\5.zip');
  finally
    FreeAndNil(Dest); 
  end;
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.07.2010, 12:08   #15
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Код:
Var
  ComStream: TZCompressionStream;
  Source: TFileStream;
  Dest: TMemoryStream;
.....
  Dest := TMemoryStream.Create;
  try 
    Source := TFileStream.Create('C:\5.png', fmShareDenyNone);
    try
      ComStream := TZCompressionStream.Create(Dest);
      try
        ComStream.CopyFrom(Source, 0);
      finally
        freeAndNil(ComStream);
      end;
    finally
      FreeAndNil(Source); 
    end;
    Dest.SaveToFile('C:\5.zip');
  finally
    FreeAndNil(Dest); 
  end;
Вот и я так сделал но архиватор пишет что zip архив повреждён может надо этимже методом и разархивировать?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 23.07.2010, 12:17   #16
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от dmitriegorovih Посмотреть сообщение
может надо этимже методом и разархивировать?
разархивировать нужно только этим методом, т.к. ZLIB это просто алгоритм сжатия информации, а если пробовать открывать любым из Архиваторов (WinRar, Zip), то открыть не получится, т.к. у них свои алгоритмы создания архива (запись служебной информации и т.п.), открой любой rar в Hex-editor и увидешь, что начальные биты содержат служебную информацию.
P.S.
Я когда писал свой архиватор я тоже придумывал алгоритм запоминания путей, имен файлов, их размеров и т.п.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.07.2010, 12:27   #17
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Ясно ну а как разархивировать и да ещё можно именно stream image(a)
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 23.07.2010, 12:42   #18
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от dmitriegorovih Посмотреть сообщение
Ясно ну а как разархивировать
Код:
var
  Source: TFileStream;
  Dest: TMemoryStream;
  DecStream: TZDecompressionStream;
......
  Source := TFileStream.Create('C:\5.zip', fmShareDenyNone);
  try
    dest := TMemoryStream.Create;
    try
      DecStream := TZDecompressionStream.Create(Source);
      try
        Dest.CopyFrom(DecStream, 0);
      finally
        FreeAndNil(DecStream);
      end;
      Dest.SaveToFile('C:\5.png');
    finally
      FreeAndNil(Dest);
    end;
  finally
    FreeAndNil(Source);
  end;
Цитата:
Сообщение от dmitriegorovih Посмотреть сообщение
да ещё можно именно stream image(a)
ну тут попробуй сам похимичить, ведь по сути Stream Image(a) это тоже поток в памяти (TMemoryStream)...
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.07.2010, 13:19   #19
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Спасибо буду разбирать
Цитата:
DecStream := TZDecompressionStream.Create(Source );
здесь он креатит из памяти вот сюда попробую память image(a) засунуть.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 26.07.2010, 09:19   #20
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Случайно нашел упоминание компонента ZipForge. Сам не юзал.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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