Thema: Delphi gzip und zip entpacken

Einzelnen Beitrag anzeigen

itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#1

gzip und zip entpacken

  Alt 21. Aug 2008, 08:15
Hi
also vorab ich habe delphi 2007

und ich bekomme per mail dateien rein die ab und zu in gzip und zip gepackt sind.

das problem ist das ich Programmintern an die darin enthaltene txt datei muss.

hab schon hier im forum gesucht doch die möglichkeiten die infrage kommen funktionieren leider nicht...

bsp.

Delphi-Quellcode:
procedure Tziptest.Decompress(InputFileName, OutputFileName: string);
var InputStream, OutputStream: TFileStream;
  DeCompressionStream: ZLib.TDeCompressionStream;
begin
  InputStream:=TFileStream.Create(InputFileName, fmOpenRead);
  try
    OutputStream:=TFileStream.Create(OutputFileName, fmCreate);
    try
      DecompressionStream:=TDecompressionStream.Create(OutputStream);
      try
        DecompressionStream.CopyFrom(InputStream, InputStream.Size);
      finally
        DecompressionStream.Free;
      end;
    finally
      OutputStream.Free;
    end;
  finally
    InputStream.Free;
  end;
end;
aufruf davon:
Decompress('d:\test.txt.gz','d:\test.txt'); der decompress code läuft zwar komplett durch allerdings wenn er wieder da weiter machen soll wo ich decompress aufgerufen habe fliegt er mit der exception:

Zitat:
Ungültige Stream-Operation
raus. warum genau ist mir leider nicht klar

hab auch das von Phistev dort gepostete beispiel mit der idzlibex probiert...
allerdings bekomm ich dann die meldung das idzlibex.dcu nicht vorhanden ist.


kopier ich dann die idzlibex.pas in meinen programm ornder das eine dcu erstellt wird bekomm ich folgende fehler:
Zitat:
[DCC Fehler] IdZlibEx.pas(453): E1026 Datei nicht gefunden: 'deflate.obj'
[DCC Fehler] IdZlibEx.pas(454): E1026 Datei nicht gefunden: 'inflate.obj'
[DCC Fehler] IdZlibEx.pas(455): E1026 Datei nicht gefunden: 'inftrees.obj'
[DCC Fehler] IdZlibEx.pas(456): E1026 Datei nicht gefunden: 'infback.obj'
[DCC Fehler] IdZlibEx.pas(457): E1026 Datei nicht gefunden: 'inffast.obj'
[DCC Fehler] IdZlibEx.pas(458): E1026 Datei nicht gefunden: 'trees.obj'
[DCC Fehler] IdZlibEx.pas(459): E1026 Datei nicht gefunden: 'compress.obj'
[DCC Fehler] IdZlibEx.pas(460): E1026 Datei nicht gefunden: 'adler32.obj'
[DCC Fehler] IdZlibEx.pas(461): E1026 Datei nicht gefunden: 'crc32.obj'
[DCC Fehler] IdZlibEx.pas(336): E2065 Ungenügende Forward- oder External-Deklaration: 'deflateInit_'
[DCC Fehler] IdZlibEx.pas(339): E2065 Ungenügende Forward- oder External-Deklaration: 'deflateInit2_'
[DCC Fehler] IdZlibEx.pas(341): E2065 Ungenügende Forward- oder External-Deklaration: 'deflate'
[DCC Fehler] IdZlibEx.pas(343): E2065 Ungenügende Forward- oder External-Deklaration: 'deflateEnd'
[DCC Fehler] IdZlibEx.pas(348): E2065 Ungenügende Forward- oder External-Deklaration: 'inflateInit_'
[DCC Fehler] IdZlibEx.pas(351): E2065 Ungenügende Forward- oder External-Deklaration: 'inflateInit2_'
[DCC Fehler] IdZlibEx.pas(353): E2065 Ungenügende Forward- oder External-Deklaration: 'inflate'
[DCC Fehler] IdZlibEx.pas(355): E2065 Ungenügende Forward- oder External-Deklaration: 'inflateEnd'
[DCC Fehler] IdZlibEx.pas(357): E2065 Ungenügende Forward- oder External-Deklaration: 'inflateReset'
hab echt keine ahnung wie ich weiter machen soll

hat vielleicht jemand einen hinweis oder ein beispiel??
  Mit Zitat antworten Zitat