Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Winzip library (https://www.delphipraxis.net/6647-winzip-library.html)

Lillebrohr 17. Jul 2003 15:30


Winzip library
 
Guten Tag,

Ich möchte in meinem Programm dem User die option bieten das er seinen Text als .Zip Datei speichern kann. Welche Library muss ich dafür nutzen und welche Parameter muss ic hdafür verwenden.
Hat eventuell jemand ein Source parat.

Danke

Mit freundlichen Grüßen

LB

Christian Seehase 17. Jul 2003 15:34

Re: Winzip library
 
Moin Lillebrohr,

Delphi enthält z.b. ZLIB. Das soll ZIP Kompatibel sein (ich hab's noch nicht ausprobiert).
Leider ist das nicht dokumentiert, aber hier im Forum solltest Du etwas zu dem Thema finden.

Ausserdem fällt mir da noch TurboPower Abbrevia (sourceforge.net) ein.
Das enthält ZIP und CAB Funktionalitäten.

Frank2269 23. Aug 2003 09:59

Re: Winzip library
 
Hallo,

installiere folgene Komponente, die auf der Hompage von Delphi Zip finden kannst.

http://www.geocities.com/rjpeters_au/zipmaster.html

Gruß
Frank

Lillebrohr 27. Aug 2003 11:08

Re: Winzip library
 
Guten Tag,

also irgendwie ist es nicht möglich Ordner zu packen, zwar Dateien aber keine Ordner !

Wisst ihr da Vorschläge ???


Mit freundlichem Gruß

LB

Duffy 27. Aug 2003 11:45

Re: Winzip library
 
Hallo Lillebrohr,
man kann keine Ordner packen, sondern nur Dateien mit vollständigen Pfad. Daraus ergibt sich wieder der Ordner. Du muß also schon Datei für Datei packen. Vielleicht funktioniert ja ein Wildcard bei der Dateiangabe um alle Dateien eines Ordners zu packen.
bye

tommie-lie 27. Aug 2003 12:31

Re: Winzip library
 
Wildcards gehen natürlich auch nicht!
Aber das Zip-Format (PKZIP) benutzt eine Art Datenbank am Anfang der Datei, um die Dateien und deren Position im gepackten Stream festzuhalten. Was du also brauchst ist die spezifikation des Dateiformates bzw die Form dieser Datenbank. Danach werden die Dateien einfach hintereinandergehängt, die Position wurde ja festgehalten.
Bei www.wotsit.org sollte man da was finden.

WooDWorkeR 27. Aug 2003 14:06

Re: Winzip library
 
mhh ich kenne Freeware Prgoramme die die rar.dll nutzen

keien ahnung ob da legal ist oder welche einschreänkungen man in kauf nehmen muss.

aber rar kann doch auch zip erstellen und lesen.

Lillebrohr 27. Aug 2003 18:50

Re: Winzip library
 
Guten Tag,

Erm, so ein Mist aber auch. Das Ding ist halt. Ich will eine .Zip erstellen wo ein Ordner und eine html File drin sein soll. In dem Ordner soll noch ein Bild sein.


Wäre sehr wichtig ! :(

Wenn noch jemand einen Tip hat, immer her damit.


MfG LB

orion3000 29. Aug 2003 12:10

Re: Winzip library
 
Hallo Lillebrohr,

Wenn du die Zipmaster Komponente nutzt, dann kanst du folgendes mal versuchen.

Delphi-Quellcode:
Zipmaster1.ZipFileName:='C:\test.zip';
Zipmaster1.FSpecArgs.Clear;
Zipmaster1.FSpecArgs.Add('C:\test.txt'); /// anstelle C:\test.txt kannst du auch *.* oder *.XXX angeben.
Zipmaster1.AddOptions:=[];

/// AddDirnames='Speichert die Pfadangaben des Archiv's
/// AddRecurseDirs='Alle Datei(en) der Unterorder mit einpacken geht nicht ohne AddDirnames
/// Siehe dir die AddOptions von Zipmaster an
Zipmaster1.AddOptions:=[ADDDirnames] /// Verzeichnisse mit Einpaken
Zipmaster1.Add; /// ERstellt das Archiv oder fügt Dateien ins Archiv hinzu
Gruß
Orion3000

Lillebrohr 3. Sep 2003 12:51

Re: Winzip library
 
Also,

ich kann zwar jetzt die Ordner mit packen aber es gibt noch ein Problem.

Wenn ich ein Pfad habe wie z.B. C:\Windows\Desktop\Test dann kriert er eine zip-file aber wenn ich sie entpacken will erstellt er mir noch die Ordner "windows" , "Desktop" und "test". Und danach kommt erst mein Mist. Wie kann ich das unterdrücken ?? Ich will das gleich mein Mist kommt ohne den restlichen Pfad.


Danke

MfG

LB

Lillebrohr 10. Sep 2003 15:09

Re: Winzip library
 
Guten Tag,

Wenns nervt tut es mir leid aber es wäre wichtig wenn der eine oder andere sich noch mal mit dem Thema auseinandersetzen könnte.

Wäre sehr sehr hilfreich.

PS: Es geht um das packen von Ordner. Nähere Informationen, siehe letzten Beitrag.


Noch mals vielen Dank


LB

Christian Seehase 10. Sep 2003 15:33

Re: Winzip library
 
Moin Lillebrohr,

hast Du Dir die Zipdatei mal mit einem anderen Programm angesehen?
Vielleicht hast Du ja die Optionen beim Entpacken falsch angegeben.

Lillebrohr 10. Sep 2003 15:48

Re: Winzip library
 
Guten Tage Christian,

Ich glaube ich habe mich falsch ausgedrückt.

Beim Packen merkt sich die Lib den Pfad: z.B. C:\Windows\Desktop\Test\hallo.zip

So nach den Packen will ich sie mit Winrar entpacken.
Jetzt entpack ich die Zip und finde folgende Ordnerstruktur:

Windows --> Desktop --> Test --> hallo.txt

Ich will aber nur hallo.txt und einen Ordner.

Zusammenfassung:

Ich habe einen Ordner und eine Datei. Ich will den Ornder und die Datei packen. Beim Entpacken will ich auch nur noch die beiden haben.

Verstanden ??



Bis denne

MFG

LB

Christian Seehase 10. Sep 2003 16:05

Re: Winzip library
 
Moin Lillebrohr,

in der Hoffnung es jetzt verstanden zu haben.... ;-)

Leider kann ich Dir die Lösung nur für TurboPower Abbrevia sagen, da ich die Eigenschaften der anderen Kompo nicht kenne.

Beim Zippen kann ich einen BasePath angeben, beim Hinzufügen von Dateien zum Archiv kann dann eine relativ zum BasePath liegende Verzeichnisstruktur mit angegeben werden. Nur diese relativen Verzeichnisse landen dann mit im Archiv, und natürlich werden dann auch nur diese wieder ausgepackt.

Lillebrohr 10. Sep 2003 16:17

Re: Winzip library
 
Guten Tag Christian,

das klingt ja schonmal sehr angenehm und vielversprechend.

Könntest du mir eventuell ein Testbeispiel posten ???

Wäre sehr sehr dupi nett :mrgreen:


Bis denne


MfG

LB

orion3000 10. Sep 2003 16:26

Re: Winzip library
 
Hallo Lillebrohr,
wenn du Zipmaster nut dann veruch folgendes.

Zipmaster1.ZipFileName:='C:\test.zip'; /// Archiv öffnen


if Not DirectoryExists('C:\Test\') then /// Zielordner erstellen, wenn nicht vorhanden
begin
Forcedirectories('C:\Test');
if Not DirectoryExists('C:\Test\') then
begin
MessageDlg('Zielverzeichniss C:\Test konnte nicht erstellt werden!', MtError,[mbOk], 0);
exit;
end;
end;


Zipmaster1.ExtrBaseDir:='C:\test\'; /// Zielordner festlegen

/// Entkomprimieoptionen von Zipmaster
/// 1. ExtrDirnames -Stellt die Original -Pfade wiederher
/// 2. ExtrOverWrite -Überschreibt vorhandene Dateien
/// 3. ExtrFreshen -Es werden nur Dateien ünerschrieben die noch nicht vorhanden sind
/// 4. Extrupdate -Vorhandene,"nur ältere" ,Dateien werden überschrieben
/// 5. ExtrTest -Archiv testen

Zipmaster1.ExtrOptions:=[]; /// Keine Entkomprimieroptionen

Zipmaster1.FSpecArgs.Clear;

Zipmaster1.FSpecArgs.Add('zu entpackende Dateien hinzufügen');
/// hier dürfen keine dopplte Dateinamen eingefügt werden, und es ist wichtig
/// wurden Pfadangaben gespeichert so müssen diese mit übernommen werden.


Zipmaster1.Extract;


Gruß
Orion3000

Christian Seehase 10. Sep 2003 16:30

Re: Winzip library
 
Moin Lillebrohr,

also ich hab' das eben mal mit TAbZipper und TAbUnZipper ausprobiert gehabt.
Je eine Kompo davon auf's Formular, beim Unzipper dann noch in den ExtractOptions eoRestorePath auf true, alles übrige bleibt auf Default.
TempDirectory, FileName und BaseDirectory kann man auch im OI eintragen, ich hab's der Übersichtlichkeit halber mal hier eingebaut.

Delphi-Quellcode:
// Zippen
  AbZipper1.TempDirectory := 'c:\temp';
  AbZipper1.FileName     := 'c:\temp\myzip.zip';
  AbZipper1.BaseDirectory := 'E:\Ziptest';
  AbZipper1.AddFiles('gif\*.*',0);
  AbZipper1.Save;

// Entzippen
  AbUnZipper1.TempDirectory := 'c:\temp';
  AbUnZipper1.FileName     := 'c:\temp\myzip.zip';
  AbUnZipper1.BaseDirectory := 'E:\Unziptest';
  AbUnZipper1.ExtractFiles('*.*')
Direkt nacheinander ausgeführt, und unter E:\Unziptest stand nur das Gif Verzeichnis mit den enthaltenen Dateien.

Lillebrohr 10. Sep 2003 16:36

Re: Winzip library
 
Guten Tag Orion & Christian,


Ohhh man ihr seid echt nett. :love:

Werds gleich nachher mal ausprobieren.

Was mich an TurboPower stört ist das es soooo riesig ist 3,6 MB.

Aber

.... be patient !!! :mrgreen:


MfG

LB

Lillebrohr 11. Sep 2003 13:36

Re: Winzip library
 
Guten Tag,

@Orion:

Ich glaube du hast da was verwechselt. Ich möchte Packen und nicht entpacken. :D


@Christian:

Ich schaff es einfach nicht das Teil zum Laufen zu bringen.

Könntest du mir eine kleine Kurzanleitung geben. Da sind ja mssig Packages. Der sagt mir beim Installieren immer was von das er ne Bibliotheksdatei nicht laden konnte.


MfG

LB

Christian Seehase 11. Sep 2003 14:04

Re: Winzip library
 
Moin Lillebrohr,

also Abbrevia sind die Pakete B304_Dx0 und B304_Rx0 (x=Delphi Version).
Ich hab' mir diese und die zugehörigen Dateien ins Delphi\Lib Verzeichnis kopiert, und dann noch die Packages angepasst, so dass vor den Units usw. keine Pfade mehr stehen.
Dann müsstest Du nur noch das eine (ich kann mir immer nicht merken, ob das D oder das R Paket ;-)) laden und installieren/compilieren.

Lillebrohr 11. Sep 2003 14:17

Re: Winzip library
 
Guten Tag Christian,

danke erstmal,

Hmmm in der Readme steht das ich nur den source ordner in den Delphi/Lib Ordner packen soll. Also pack ich nur die Packages die ich brauch da rein ? Ich hab mir ja die neue Version runtergeladen B305XXX.
Also kopier ich das Runtime Package und das Designtime Package in den Lib Ordner ? Und was ist mit den ganzen .pas Dateien ? Wo kommen die hin ?
Und was meintest du mit
Zitat:

dann noch die Packages angepasst, so dass vor den Units usw. keine Pfade mehr
?

Soll ich die Package Datei öffnen und dort die Pfade anpassen ? Oder löschen ?

Danke für deine Kompetenz ! :mrgreen:


MFG

LB

Christian Seehase 11. Sep 2003 14:23

Re: Winzip library
 
Moin Lillebrohr,

Zitat:

Zitat von Christian Seehase
und die zugehörigen Dateien

damit meine ich natürlich die PAS, RES usw.

Ich musste dann noch in den Package Dateien die Pfade vor den Units löschen, da diese auf Unterverzeichnisse relativ zur Package Datei verwiesen haben, und ich wollte halt alles im LIB haben. ;-)

Lillebrohr 13. Sep 2003 19:06

Re: Winzip library
 
Guten Tag Christian,

also irgendwie kriege ich es nicht hin. Also ich benutze Delphi 5 enterprise. So jetzt kopiere ich folgende Dateien in den Lib Ordner.

- B305_d50.dpk
- B305_d50.res
- B305_r50.dpk
- B305_r50.res


So nun kopiere ich noch alle .pas Dateien in den LIB ordner und öffne die .dpk Dateien mit den Editor und lösche die "..\" aus dem Pfad raus. (die pas Dateien sind immer noch im Source Ornder). so dann starte ich Delphi und öffne die B305_d50.dpk. so jetzt kompiliere ich und installiere, ja und da hängts dann. Dann sagt er mir was von Hostanwendung und dazugehörige Library nicht vorhanden und so.

Was mache ich falsch ?????????


MfG

LB

Christian Seehase 14. Sep 2003 01:08

Re: Winzip library
 
Moin Lillebrohr,

hast Du schon das zugehörige R50 kompiliert?
Ich wüsste sonst nicht, woran es haken sollte.

Nur um's nochmal zusammenzufassen:
Ich habe die beiden DPK Dateien (mit angepassten Pfaden für die eigenlichen Units usw), sowie alle darin aufgeführten im Lib Verzeichnis stehen gehabt.
Dann das R50 kompiliert, und anschliessend das D50 kompiliert und installiert (ich hab's noch einmal nachgeschaut).

Durch das kompilieren stehen die beiden BPL und DCP Dateien bei mir automatisch im Delphi5\Projects\Bpl Verzeichnis.

Kannst Du mal schauen, was Du im Menü unter Start\Parameter stehen hast.
Das wäre so aus dem Stand die einzige Stelle, zu der mir der Begriff Hostanwendung etwas sagen würde (für den Test von DLLs).

Lillebrohr 15. Sep 2003 13:54

Re: Winzip library
 
Guten Tag Christian,



ich könnte ausrasten. :firejump: Es will und will nich funktionieren. Ich probier es jetzt mal mit der 304 Version Könntest du mir einen Link sagen wo ich diese runterladen kann ? Denn bei Sourceforge gibts irgendwie keine !


Wenn sie nicht zu groß ist könnteste sie ja auch mit in den Anhang hängen.



MfG


LB

Christian Seehase 15. Sep 2003 14:34

Re: Winzip library
 
Moin Lillebrohr,

Zitat:

Zitat von Lillebrohr
Denn bei Sourceforge gibts irgendwie keine !

:shock: :gruebel:

die hab' ich schneller gefunden, als diesen Beitrag geschrieben.

Bei Sourceforge.net nach turbopower suchen, den Link zu Abbrevia anklicken, und dort dann "View ALL Project Files" (steht unter der Liste).
Da gibt's dann eine Liste incl. der 3.04, zumal die 3.05 ja eine Beta 1 ist.

Lillebrohr 15. Sep 2003 14:53

Re: Winzip library
 
Guten Tag christian,


Aaaaaaaalso hab ich alles gemacht.
Hab diese Seite hier : http://sourceforge.net/project/showf...group_id=71001


Und da sind nur die Dokumente von der 304 !


MfG

LB


// Edit

Ups habs doch gefunden, danke

Lillebrohr 16. Sep 2003 14:19

Re: Winzip library
 
Guten Tag Christian,


also ich denke so langam das es an Delphi liegt. Irgendwas stimmt da mit den Parametern nicht. Also hab das jetzt alles nochmal mit der 304 er ausprobiert und hat natürlich nich geklappt. Wieder diese Host Meldung.


Also ich hab Win98 Se, Delphi 5 Enterprise. Was muss ich noch so einstellen in Delphi spezifisch ???


MfG

LB

Christian Seehase 16. Sep 2003 14:24

Re: Winzip library
 
Moin Lillebrohr,

das kann ich nicht nachvollziehen. Ich hab' ja D5 Pro und damit dürfte sich das nicht sonderlich unterscheiden.
Ich habe nichts weiteres eingestellt.

Eine Idee noch:
Verwendest Du die Desktop Dateien?
(also Autospeichern\Project Desktop)

Das tue ich nämlich nicht.

Lillebrohr 16. Sep 2003 15:04

Re: Winzip library
 
Guten Tag Christian,

also bei mir ist dies auch nicht eingeschaltet. So ein Mist. Ich werd Delphi nochmal installieren was, ich glaube, auch nichts bringt.

So ein Mist aber auch. gibt es eventuell noch eine Alternative ??? Natürlich auch eine die Ordner packen kann.


MfG


LB

Christian Seehase 16. Sep 2003 15:09

Re: Winzip library
 
Moin Lillebrohr,

häng' doch mal einen Screenshot von der IDE incl. Fehlermeldung hier an.
Verstehen kann ich das nämlich nicht.

Lillebrohr 26. Jan 2004 19:30

Re: Winzip library
 
Guten Tag,

ich weiß es ist schon lange her aber zum Laufen hab ich es jetzt bekommen. Musste D5 einfach neu installen.

OK, wenn ich jetzt Ordner packen will und was auch gut funktioniert.
Nur gibt es jetzt noch ein Problem.

Die File die ich packen will liegt z.B. hier:

C:\Test\Obst\Banane\targ.pas

So nach dem Packen ist in der Lib nun folgende Ordnerstruktur:

Test--> Obst--> Banane--> targ.pas

Wie kann ich es jetzt anstellen das er nur den Ornder Bananae packt ??

Bye

APP 26. Jan 2004 19:58

Re: Winzip library
 
Hallo Lillebrohr,

hast Du Dir schon mal die
Code:
StoreOptions := [[color=red]soStripDrive[/color]]
angesehen, soweit ich mich erinnere, verhinderst Du mit "soStripDrive" das Abspeichern des LW-Buchstaben.

Lillebrohr 26. Jan 2004 20:10

Re: Winzip library
 
Hi,

ok aber wird damit nich der ganze Pfad gelöscht ? Bleibt dann intern der Pfad noch aktiv ? Denn er muss ja wissen wo sich die File befindet ??

Bye

APP 26. Jan 2004 20:43

Re: Winzip library
 
Sorry Lillebrohr,
Zitat:

Zitat von Lillebrohr
...
Test--> Obst--> Banane--> targ.pas
Wie kann ich es jetzt anstellen das er nur den Ornder Bananae packt ??

ich habe Dich falsch verstanden.

Das sollte Funktionieren, ohne meine obigen "StoreOptions":

Code:
[color=red]AbZipper1.BaseDirectory:=(C:\Test\Obst\');[/color]
AbZipper1.AddFiles('Banane\targ.pas', 0);
AbZipper1.Save;

Lillebrohr 26. Jan 2004 20:51

Re: Winzip library
 
HiHo,

ohhh, ich habe die ganze Zeit mit dem Abbrevia Teil gerechnet. MMh, nun könntest du mir eventuell noch mal n Snippet geben für das Packen von Ordnern mit deiner LIB. Danke


Bye

APP 26. Jan 2004 21:07

Re: Winzip library
 
Hallo Lillebrohr,

Zitat:

Zitat von Lillebrohr
...ich habe die ganze Zeit mit dem Abbrevia Teil gerechnet...

mein Code IST mit Abbrevia :shock:.

Lillebrohr 26. Jan 2004 21:11

Re: Winzip library
 
DAMN,

hab das jetzt verwechselt. :duck:

Bye

Werds nachher gleich mal ausprobieren.

Lillebrohr 28. Jan 2004 16:32

Re: Winzip library
 
Hi,

also ich muss wohl sehr verpeilt gewesen sein in den letzten Tagen.
Natürlich habe ich es noch nich hinbekommen Abbrevia zu installieren.
:( Ich Wie füge ich den Source Ordner in den LIB Path von delphi ein ?? Ich glaube daran liegts.

Ich habe bis jetzt nur Zipmaster ordentlich laufen. Hat da jemand Ahnung wie ich es hinbekomme ??


Bye

APP 28. Jan 2004 19:47

Re: Winzip library
 
Hallo Lillebrohr,

Zitat:

Zitat von Lillebrohr
...füge ich den Source Ordner in den LIB Path von delphi ein ??...

IDE: Tools -> Umgebungsoptionen -> Bibliothek -> Bibliothekspfad -> mit Button [...] abbrevia-Source Pfad suchen und danach NICHT vergessen auf Button [Hinzufügen] zu drücken, sonst war alles umsonst. :witch:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz