![]() |
Gezipte Daten entpacken
Hallo
ICh hab ein Setupprogramm gemacht wo existierende Daten in ein Zielverzeichnis kopiert Jetzt die Frage: ICh will Als existierende Daten Zips verwenden und dann entpacked ins zielverzeichnis schicken um Platzt zu sparen. Wie kann ich die Zips entpacken mit delphi ? |
Re: Gezipte Daten entpacken
Bei Delphi ist die zLib dabei. Es gibt aber noch andere, bessere Komponenten. Eine Suche im Forum, wird genug Treffer und Vorschläge bringen.
|
Re: Gezipte Daten entpacken
Gut und danke Lucky
aber das hilft mir nicht viel wiel ich keine Ahnung hab wie ich zlib anwende quellcode und so! Kansch mir ein Beispiel Schreiben? |
Re: Gezipte Daten entpacken
Benutz mal die Suche hier im Forum, das hatten wir schon öfters.
|
Re: Gezipte Daten entpacken
Hi, ich hab dir mal n beispiel aus nem Code von mir gemacht. Folgender Code komprimiert/dekomprimiert einen MemoryStream:
Delphi-Quellcode:
{Daten eines MemoryStreams komprimieren}
function Compress(var MemoryStream: TMemoryStream): double; var CompressionStream: ZLib.TCompressionStream; temp: TMemoryStream; begin temp := TMemoryStream.Create; CompressionStream := TCompressionStream.Create(clmax, temp); try MemoryStream.Seek(0, soFromBeginning); CompressionStream.CopyFrom(MemoryStream, MemoryStream.Size); temp.Seek(0, soFromBeginning); MemoryStream.Seek(0, soFromBeginning); MemoryStream.CopyFrom(temp, temp.Size); result := CompressionStream.compressionrate; finally CompressionStream.Free; temp.Free; end; end; {Daten eines MemoryStreams dekomprimieren} procedure Decompress(var MemoryStream: TMemoryStream); var DeCompressionStream: ZLib.TDeCompressionStream; temp: TMemoryStream; begin temp := TMemoryStream.Create; DecompressionStream := TDecompressionStream.Create(temp); try MemoryStream.Seek(0, soFromBeginning); DecompressionStream.CopyFrom(MemoryStream, MemoryStream.Size); MemoryStream.Seek(0, soFromBeginning); temp.Seek(0, soFromBeginning); MemoryStream.CopyFrom(temp, temp.Size); finally DecompressionStream.Free; temp.Free; end; end; |
Re: Gezipte Daten entpacken
Ok danke aber hast du ne Idee wie mann damit Exen Zipen und entzipen kann
Und Luckie ich hab schon gesucht aber net geblickt |
Re: Gezipte Daten entpacken
Moin Zusammen,
nur der Vollständigkeit halber sei noch Turbo Power Abbrevia erwähnt. Zu finden bei sourceforge.net |
Re: Gezipte Daten entpacken
Hi,
Also erstmal an Mr.Knogge: Dein Code kann zwar bei mir zippen, aber erst als ich die Variable temp als Ausgangs Datei benutzte denn zuvor waren die DAeten vor der Komprimierung ind danach genau gleich groß!!! und das entzippen ging dann garnicht mehr da hat er immer eine Fehlermeldung beim Ausfuhren des Decompressions Befehls gegeben Kannst du das mit deinem Code nochmal nachprüfen ob der so stimmt wie er dortsteht oder liegt es daran das ich was falsch gemacht hab ich schrieb es etwa so:
Delphi-Quellcode:
und da warn sie gleich groß als ich dann sie temp variable deines codesProcedure Button1click usw. var c:Tmemorystream; begin c:= Tmemorystream.create; if opendialog1.execute then c.loadfromfile(opendialog1.filename); compress(c); if savedialog1.execute then c.savetofile(savedialog1.filename); end; speicherte war sie kleiner also mit der temp hats getan, ich hab eben noch das temp free wird raus gemnacht aber das decompression ding tat garnicht da er sagte das bei deinem code was falsch ist!! kanst du das bitte uberprüfen |
Re: Gezipte Daten entpacken
Ok tut jetzt alles
ichh hab was anderes gefunden aber danke an allle |
Re: Gezipte Daten entpacken
Und was hast du gefunden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz