BCB2007 und ZIP
-
was benutzt ihr für den BCB2007 um zip-dateien zu erstellen ?
Ist da irgend eine 'free' Komponente ?
-
Hallo
Selber benutzt habe ich es noch nicht, aber zlib ist natürlichg auch auf dem Builder benutztbar
bis bald
akari
-
zlib habe ich als erstes probiert, nach vorlage von http://www.bytesandmore.de/rad/cpp/snipp/sc06021.php
aber irgendwie funktionierte es nicht richtig. In diesem Beispiel kann ich die output.zip nicht mehr öffnen. Fehlermeldung von WinZip.TZipObj* pZip = new TZipObj; TStringList* pFiles = new TStringList; if(pZip != NULL && pFiles != NULL ) { pFiles->Add("c:\\test.txt"); pZip->CompressFiles(pFiles ,"c:\\output.zip",7, false); delete pFiles; delete pZip; }
bei dieser Variante (mit veizeichnis, true) kann ich zwar die zip Datei öffnen, erhalte aber in ihr einen Ordner Namens 'c:'.
TZipObj* pZip = new TZipObj; TStringList* pFiles = new TStringList; if(pZip != NULL && pFiles != NULL ) { pFiles->Add("c:\\test.txt"); pZip->CompressFiles(pFiles ,"c:\\output.zip",7, true); delete pFiles; delete pZip; }
habe Zlib noch nie benutzt, daher habe ich das Beispiel verwendet, aber es funktioniert so nicht. Ist da evtl. noch was zu beachten ?
-
Hallo. Gibt es die TZipObj Klasse auch bereits mit UnicodeString Unterstüzung?
-
Ich habe jetzt die komplette Klasse in UnicodeString umgesetzt. Jetzt meckert er jedoch über:
[ILINK32 Fehler] Error: Nicht auflösbares externes '_zipOpen' referenziert von TZIPOBJ.OBJ
[ILINK32 Fehler] Error: Nicht auflösbares externes '_zipOpenNewFileInZip' referenziert von TZIPOBJ.OBJ
[ILINK32 Fehler] Error: Nicht auflösbares externes '_zipWriteInFileInZip' referenziert von TZIPOBJ.OBJ
[ILINK32 Fehler] Error: Nicht auflösbares externes '_zipCloseFileInZip' referenziert von TZIPOBJ.OBJ
[ILINK32 Fehler] Error: Nicht auflösbares externes '_zipClose' referenziert von TZIPOBJ.OBJWenn ich alle *.c Dateien aus Zlib in die Projektverwaltung aufnehme, dann compiliert er fehlerfrei, aber wieso muss ich das? Wieso reicht es denn nicht unter Optionen->Include-Pfad den Ordner ZLib anzugeben. in welchem sich die Dateien befinden?! Mich stört es, weil die Projektverwaltung regelrecht "zugemüllt" wird und man die eigenen Projektdateien kaum noch findet.
-
TZip schrieb:
Ich habe jetzt die komplette Klasse in UnicodeString umgesetzt.
Das wird so nicht funktionieren. TZipObj übergibt andauernd Strings via AnsiString::c_str() an die zip*-Funktionen; diese erwarten auch char* und nicht wchar_t*. Du könntest AnsiString durch UTF8String ersetzen, dann hast du UTF-8-encodierte Dateinamen.
TZip schrieb:
aber wieso muss ich das?
Weil du die darin enthaltenen Funktionen aufrufst?
TZip schrieb:
Wieso reicht es denn nicht unter Optionen->Include-Pfad den Ordner ZLib anzugeben. in welchem sich die Dateien befinden?!
Weil sie nicht der Präprozessor finden muß, sondern Compiler und Linker.
TZip schrieb:
Mich stört es, weil die Projektverwaltung regelrecht "zugemüllt" wird und man die eigenen Projektdateien kaum noch findet.
Dann benutze entweder virtuelle Ordner (-> Kontextmenu im Projektmanager), oder mache aus TZipObj.cpp/.h und den ZLib-Dateien eine statische Bibliothek.