ZLib Error (-5) Indy

Rund um die LCL und andere Komponenten
Antworten
Warf
Beiträge: 2122
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

ZLib Error (-5) Indy

Beitrag von Warf »

Hey ho Leute,

ich hätte da mal ein Problem. Für mein aktuelles Projekt benötige ich ein Kompressionsverfahren, also dachte ich mir, ich nutze GZip mit der ZLib. Als Komponente habe ich dafür die Klasse TIdCompressorZLib genommen, da es damit recht simpel ist. Die Kompression läuft folgendermaßen ab:

Code: Alles auswählen

 
    FS1 := TFileStream.Create(FileName, fmOpenRead);
    try
      FS2 := TFileStream.Create(DestFileName, fmOpenWrite or fmCreate);
      try
        comp := TIdCompressorZLib.Create;
        try
          comp.CompressStream(FS1, FS2, 1, 31, 8, 0); //Diese Parameter habe ich irgendwo im Netz gefunden, das level ist der Algroithmus (zwischen 0 und 3), die anderen weiß ich nicht was die bedeuten
        finally
          comp.Free;
        end;
      finally
        FS1.Free;
      end;
    finally
      FS2.Free;
    end;
Die Dekompression so:

Code: Alles auswählen

With TIdCompressorZLib.Create do
begin
  try
    DecompressStream(MemStream, FStream, 31);
  finally
    Free;
end; 
Bei den meisten Dateien ist das auch kein Problem, aber es gibt immer mal wieder eine Datei (egal was für eine, jpegs aber auch Textfiles) bei denen Error -5, Buffer Error rauskommt.

Langsam bin ich echt am verzweifeln, ich weiß nicht woran das liegt, oder wie ich das beheben könnte.

Die Dateien bei denen dieser Fehler auftritt sind augenscheinlich auch nicht besonders.

Die Dokumentation über die Klasse hat mir auch nicht wirklich weitergeholfen.

LG Fred

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: ZLib Error (-5) Indy

Beitrag von creed steiger »

wie wäre es mit "Bordmitteln"?

http://wiki.freepascal.org/paszlib#TZipper

http://www.freepascal.org/docs-html/fcl ... ipper.html
http://www.freepascal.org/docs-html/fcl ... ipper.html

Wird auch in fpspreadsheet genutzt denke ich und sollte gut getestet sein

Warf
Beiträge: 2122
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: ZLib Error (-5) Indy

Beitrag von Warf »

Ich komme mir grade ziemlich dämlich vor :D

Danke ich werde dann mal diese Klasse verwenden

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: ZLib Error (-5) Indy

Beitrag von creed steiger »

Warf hat geschrieben:Ich komme mir grade ziemlich dämlich vor :D
Quatsch
schau erst mal ob mein Tipp auch was gebracht hat ;)

Warf
Beiträge: 2122
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: ZLib Error (-5) Indy

Beitrag von Warf »

Habe es mit ein Paar Dateien getestet, funktioniert soweit super

Antworten