Проблема при распаковке архива Ods

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Проблема при распаковке архива Ods

Сообщение lightning » 20.11.2010 18:04:32

Возникла проблема при распаковке архива Ods при помощи модуля Zipper. Ступор происходит на файле content.xml, выдает ошибку "Invalid CRC checksum while unzipping content.xml" и дальше не идет, с архивом все в порядке, не битый. Может кто-нибудь сталкивался с такой проблемой, подскажите решение. Ось Windows, Lasarus v0.9.28.2бета
lightning
новенький
 
Сообщения: 11
Зарегистрирован: 18.02.2010 17:39:57

Re: Проблема при распаковке архива Ods

Сообщение lightning » 22.11.2010 11:26:53

Вопрос жизни и смерти! Подскажите, очень надо!
lightning
новенький
 
Сообщения: 11
Зарегистрирован: 18.02.2010 17:39:57

Re: Проблема при распаковке архива Ods

Сообщение Maxizar » 22.11.2010 12:07:04

Вот обсуждение формата ODT (распаковка упаковка при помощи Zippera), у меня все открывает и запаковывает назад. ODS тоже лично мной проверено на моем модуле все работает как часы.
Ну уж если не помогло предлагаю свой код:
Код: Выделить всё
procedure TOODocument.LoadFromFile(const FileName: String);
var UnZip:TUNZipper;

Procedure LoadDoc(var XMLDoc: TXMLDocument;
  const XMLFileName: String);
begin
  FreeAndNil(XMLDoc);

  if FileExists(XMLFileName) then
  ReadXMLFile(XMLDoc, XMLFileName);
end;

begin
  if not FileExists(FileName) then exit; //Файла нет, подстава блин...

  FullRemoveDir(FTempPath,False); //Очистка папки темп от старых файлов

  UnZip:=TUNZipper.Create;

  UnZip.FileName   := FileName;
  UnZip.OutputPath := FTempPath;
  try
   UnZip.UnZipAllFiles;  //Распаковка файлов
  finally
    UnZip.Free;
  end;

//Загрузка файлов в соответствующие XML документы
  LoadDoc(FContent,FTempPath+'content.xml'); //content.xml
  LoadDoc(FManifest,IncludeTrailingPathDelimiter(FTempPath+'META-INF')+'manifest.xml');//META-INF/manifest.xml
  LoadDoc(FMeta,FTempPath+'meta.xml');     //meta.xml
end; 
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Проблема при распаковке архива Ods

Сообщение lightning » 22.11.2010 12:14:00

Я использовала вот такой простой код для теста:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var
  UnZipper: TUnZipper;
begin
  UnZipper := TUnZipper.Create;
  try
    UnZipper.FileName := 'test.ods';
    UnZipper.OutputPath := 'test';
    try
      UnZipper.UnZipAllFiles;
    except
      on E: Exception do InputBox('', '', E.Message);
    end;
  finally
    FreeAndNil(UnZipper);
  end;
end;


Добавлено спустя 1 час 17 минут 32 секунды:
Я делаю так же, на Ubuntu все работает, а на Windows отказывается :( Windows XP Professional Service Pack 2 :(
lightning
новенький
 
Сообщения: 11
Зарегистрирован: 18.02.2010 17:39:57

Re: Проблема при распаковке архива Ods

Сообщение Vadim » 22.11.2010 16:06:08

lightning писал(а):Я делаю так же, на Ubuntu все работает, а на Windows отказывается

Он так и пишет в ошибках:
"Отказываюсь, потому что меня не поють пивом"? :D
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Проблема при распаковке архива Ods

Сообщение lightning » 22.11.2010 16:30:44

Vadim писал(а):
lightning писал(а):Я делаю так же, на Ubuntu все работает, а на Windows отказывается

Он так и пишет в ошибках:
"Отказываюсь, потому что меня не поють пивом"? :D

Да если бы :) , ошибка: Invalid CRC checksum while unzipping content.xml
lightning
новенький
 
Сообщения: 11
Зарегистрирован: 18.02.2010 17:39:57

Re: Проблема при распаковке архива Ods

Сообщение Maxizar » 22.11.2010 19:42:31

Ну мой код распаковки (указан выше) и упаковки см тему про ODT. Работает и в линухе и в Windows XP SP3. Возможно все связано с самим LCL, я юзаю Лазарус 0.9.29 и FPC 2.4.3 возможно со времени вашей версии Zipper был допилен. Так что мой вам совет скачайте вот отсюда сборку для винды.
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Проблема при распаковке архива Ods

Сообщение Sergei I. Gorelkin » 22.11.2010 21:06:54

Допилен-допилен, причем недавно. Нужно брать свежий unzipper, старый не понимает od? форматов. Точнее, он не понимает, что в них CRC записан не до содержимого файла, а после.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Проблема при распаковке архива Ods

Сообщение lightning » 23.11.2010 14:35:39

Действительно, скачала новую сборку Lasarus, всё работает! :) Благодарю за помощь!
lightning
новенький
 
Сообщения: 11
Зарегистрирован: 18.02.2010 17:39:57


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru