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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2016, 00:10   #1
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию Delphi. DecompressionStream. Распаковка .gz архива. 'data error'

Доброго времени суток.
Нашел в Делфях распаковку архива.
Решил попробовать встроенный пример:
Код:
procedure TForm1.btnDecompressClick(Sender: TObject);
var
  LInput, LOutput: TFileStream;
  LUnZip: TZDecompressionStream;

begin
  { Create the Input, Output, and Decompressed streams. }
  LInput := TFileStream.Create(Edit1.Text, fmOpenRead);
  LOutput := TFileStream.Create(ChangeFileExt(Edit1.Text, 'txt'), fmCreate);
  LUnZip := TZDecompressionStream.Create(LInput);
 
  { Decompress data. }
  LOutput.CopyFrom(LUnZip, 0);
 
  { Free the streams. }
  LUnZip.Free;
  LInput.Free;
  LOutput.Free;
end;
Немного переделал, чтоб интересней было:
Код:
  LInput := TFileStream.Create('players_2016.csv.gz', fmOpenRead);
  LOutput := TFileStream.Create(ChangeFileExt('players', '.csv'), fmCreate);
И пошагово отладил, на что мне выдаёт
Код:
  LOutput.CopyFrom(LUnZip, 0);
ошибку 'data error'
которая значит The input data was corrupted or incomplete.
Я не понимаю, повреждены/неполные данные? Почему, хм, и как исправить?
Помогите пожалуйста.

Последний раз редактировалось Artsiom; 21.10.2016 в 08:10.
Artsiom вне форума Ответить с цитированием
Старый 21.10.2016, 08:09   #2
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Может тогда ещё как можно распаковать gz? Но только без внешних программ, средствами делфи.
Artsiom вне форума Ответить с цитированием
Старый 21.10.2016, 08:38   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

TZDecompressionStream работает если архив создан с помощью TZCompressionStream
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.10.2016, 09:06   #4
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Рррр, а почему тогда в справке этого не было?(
Спасибо, буду думать дальше.
Artsiom вне форума Ответить с цитированием
Старый 21.10.2016, 10:17   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ставьте дополнительные компоненты.
например, поищите бесплатный TurboPower Abbrevia
Цитата:
Abbrevia is a compression toolkit for Embarcadero Delphi, C++ Builder, and Kylix, and FreePascal. It supports PKZip, Microsoft CAB, tar, gzip, bzip2 and zlib compression formats, and the creation of self-extracting executables. It includes several visual components that simplify displaying zip files.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распаковка архива после скачивания giraff C# (си шарп) 9 22.03.2015 21:17
распаковка игрового архива awpe Общие вопросы C/C++ 3 08.01.2014 19:03
распаковка архива с файлами .doc, .xls sashonk Microsoft Office Word 0 22.10.2010 17:28
Распаковка архива. Формат нестандартный. RoadTrain Общие вопросы Delphi 20 17.12.2007 22:08
Распаковка архива Kashp Общие вопросы Delphi 2 23.08.2007 15:08