Seite 8 von 9
Verfasst: 25.02.2009 04:58
von ts-soft
Code: Alles auswählen
;UseFLACSoundDecoder()
;UseJPEG2000ImageDecoder()
UseJPEGImageDecoder()
UseOGGSoundDecoder()
UsePNGImageDecoder()
UseTGAImageDecoder()
;UseTIFFImageDecoder()
MessageRequester hat geschrieben:---------------------------
---------------------------
42993608
---------------------------
OK
---------------------------
Das funktioniert aber auch nur, solange es kein CatchImage gibt.
Wie das alles zusammenhängt ist mir nicht klar, ich ändere nichts,
was damit auch nur im entferntesten zu tun haben könnte

Verfasst: 25.02.2009 13:26
von Fluid Byte
Drauf geschissen jetzt ...
Entweder benutze ich nun einen entsprechenden Packer (MoleBox, etc.) oder belasse das Archiv passwortgeschützt im Hauptverzeichnis ohne es einzubinden. Ich muss nämlich nur noch an der Mucke feilen dann ist das Spiel fertig.

Verfasst: 25.02.2009 14:06
von ts-soft
Update
Problem mit Passwortfunktionen beseitigt
CHM-Hilfe hinzugefügt
64- und 32-Bit UserLibs mit Source hinzugefügt.
Jetzt könnt Ihr selber entscheiden, Include oder UserLib (beides geht nicht)
(dafür ist das Paket etwas größer)
Gruß
Thomas
Verfasst: 26.02.2009 12:29
von ts-soft
Update
resident für x64 fixed
Neue Funktion: ZIP_DirAdd((ZipHandle, Directory.s [, Compression [, Callback]])
redunanten Code entfernt
Verfasst: 01.03.2009 22:28
von mardanny71
Habe ich bei mir was falsch Kopiert oder sind die Konstanten zur Kompression noch nicht angemeldet?
Das Beispiel 5 läuft erst, wenn man #Z_BEST_COMPRESSION durch seine Nummer ersetzt.
gruß
mardanny71
Verfasst: 01.03.2009 22:31
von ts-soft
Du benutzt wahrscheinlich die UserLib, aber nicht die aktuellste!
Es sind folgende Strukturen und Konstanten zur Benutzung deklariert:
Code: Alles auswählen
Structure tm_unz
tm_sec.l; /* seconds after the minute - [0,59] */
tm_min.l; /* minutes after the hour - [0,59] */
tm_hour.l; /* hours since midnight - [0,23] */
tm_mday.l; /* day of the month - [1,31] */
tm_mon.l; /* months since January - [0,11] */
tm_year.l; /* years - [1980..2044] */
EndStructure
Structure unz_file_info
version.l; /* version made by 2 bytes */
version_needed.l; /* version needed to extract 2 bytes */
flag.l; /* general purpose bit flag 2 bytes */
compression_method.l; /* compression method 2 bytes */
dosDate.l; /* last mod file date in Dos fmt 4 bytes */
crc.l; /* crc-32 4 bytes */
compressed_size.l; /* compressed size 4 bytes */
uncompressed_size.l; /* uncompressed size 4 bytes */
size_filename.l; /* filename length 2 bytes */
size_file_extra.l; /* extra field length 2 bytes */
size_file_comment.l; /* file comment length 2 bytes */
disk_num_start.l; /* disk number start 2 bytes */
internal_fa.l; /* internal file attributes 2 bytes */
external_fa.l; /* external file attributes 4 bytes */
tmu_date.tm_unz;
FileName.s
EndStructure
#ZIP_OK = 0
#ZIP_CANCEL = 1
#UNZIP_OK = 0
#UNZIP_CANCEL = 1
#Z_NO_COMPRESSION = 0
#Z_BEST_SPEED = 1
#Z_BEST_COMPRESSION = 9
#Z_DEFAULT_COMPRESSION = -1
Enumeration
#ZIP_SUPPORT_OK
#ZIP_SUPPORT_NOT_ARCHIVE
#ZIP_SUPPORT_ERROR_IN_ARCHIVE
EndEnumeration
Gruß
Thomas
Re: minizip
Verfasst: 10.09.2011 20:30
von Thorsten1867
Vielen Dank für das Include.
PureZIP produziert bei mir unerklärliche Abstürze in meinem Programm, wenn es nicht im Debugmodus (???) läuft.
MiniZip ist meine Rettung.
Mir ist aufgefallen, dass Archivnamen mit Umlauten nach dem Packen etwas seltsam aussehen.
z.B. "K├╝ndigung.doc" anstatt "Kündigung"
Dann noch einen Vorschlag für "ZIP_DirAdd()".
Wie wäre ein Parameter "Pattern", damit man nur bestimmte Dateien packen kann (z.B. "*.doc")
ZIP_DirAdd(ZipHandle.l, Directory.s, [Pattern.s [, Compression [, Callback]]])
Ich habe mir das Include zwar entsprechend angepasst, aber vielleicht hätten auch andere Verwendung dafür.

Re: minizip
Verfasst: 10.09.2011 20:43
von STARGÅTE
Mir ist aufgefallen, dass Archivnamen mit Umlauten nach dem Packen etwas seltsam aussehen.
z.B. "K├╝ndigung.doc" anstatt "Kündigung"
Das ist aber allgemein ein problem bei ZIP.
Zumindest hatte ich das auch schon wenn ich mit ZIP selbst "Umlaute gepackt" habe.
Sieht danach aus, als ob der Dateiname mit UTF-8 gespeichert wurde, dann aber mit Ascii gelesen wurde.
Re: minizip
Verfasst: 10.09.2011 21:10
von ts-soft
Entweder im ASCII oder im Unicode-Modus sollten die Umlaute stimmen, hab da irgendwo aufgegeben, PKZip 2 unterstützt
keine Umlaute und Infos über die ganzen wilden Formate fehlten mir da teilweise, weil jeder seinen eigenen Kram macht,
vor allem Winzip macht alles total anders (falsch

)
Re: minizip
Verfasst: 10.09.2011 21:30
von Thorsten1867
Hier ein Vorschlag für
ZIP_DirAdd() mit Pattern und einem Flag, ob Unterverzeichnisse gepackt werden oder nicht:
Code: Alles auswählen
Procedure ZIP_BrowseDirectory(sPath.s, List ZIP_DirList.s(), List ZIP_FileList.s(), pattern.s="", Recursive.l=#True)
Protected dirID, sDirName.s
If (Right(sPath, 1) <> "\"): sPath + "\" : EndIf
dirID = ExamineDirectory(#PB_Any, sPath, pattern)
If dirID
While NextDirectoryEntry(dirID)
If DirectoryEntryType(dirID) = #PB_DirectoryEntry_File
AddElement(ZIP_FileList())
ZIP_FileList() = sPath + DirectoryEntryName(dirID)
ElseIf Recursive
sDirName = DirectoryEntryName(dirID)
If (sDirName <> ".") And (sDirName <> "..")
AddElement(ZIP_DirList())
ZIP_DirList() = sPath + sDirName
ZIP_BrowseDirectory(sPath + sDirName, ZIP_DirList(), ZIP_FileList(), pattern, Recursive)
EndIf
EndIf
Wend
FinishDirectory(dirID)
EndIf
EndProcedure
Procedure ZIP_DirAdd(ZipHandle, Directory.s, pattern.s="", Recursive.l=#True, Compression = #Z_DEFAULT_COMPRESSION, Callback = 0)
; .....
ZIP_BrowseDirectory(Directory, ZIP_DirList(), ZIP_FileList(), pattern, Recursive)
; .....
EndProcedure