Ich hab mir vorgenommen ein eigenes Archiv zu erstellen, das es erlaubt mehrere Dateien in eben eine komprimierte Datei zu pressen. Ich habe bisher nur das in eine Datei pressen gamacht (ohne Ordner Support) man kann allerdings jetzt zum Beispiel auch Dateien in einem Archiv ansehen ohne sie Entpacken zu müssen, so wie z.B. bei WinRAR...
Ladet es euch mal runter und sucht nach Fehlern: http://bg-zeuch.de.tc/ (Is nur eine Datei die ihr Auswählen könnt.)
Wenn ich das ganze fertig habt bekommt ihr, klar, wieder den Source (Delphi), aber im Moment nur die Exe und ein Beispielarchiv (Test.bga).
[In das Archiv hab ich mal zum Testen einene Textdatei und ein Bild reingemacht.
Textdatei = Tut zum Dateizugriff bei OS-Dev mittels ASM und das Bild is n' älteres Paint-Bild von mir...]
Jo, funktioniert einwandfrei (zumindest bei mir) Allerdings einige verbesserungsvorschläge:
- Wenn ein benutzer das Abeitsverzeichniss des Programmes offen hat und damit hantiert fällt doch recht stark der umgang mit den Tempfiles auf. Könnte man afaik auch ohne lösen... man weis nie was DAU damit während der Laufzeit macht ^^
- Teste beim speichern ob der Endbenutzer den Dateinamen mit drangehängt hat... und wenn nicht, tu das im Code. Wenn ich ein Archiv als "test0r" abspeichere und unten *.bgm wähle, speichert er mir es nur als "testor" ohne Format.
Snippet nicht getestet
Bug: Wenn man ein Archiv einlädt und dann die beinhalteten Daten in der Liste stehen hat, auf Datein hinzufügen klickt aber keine einlädt sondern auf abbrechen klickt, dann ist die Liste plötzlich leer. Das Archiv ist aber irgendwie immer noch offen, denn danach beim Hinzufügen stehen wieder alle Einträge drinne. Nur eben beim Abbrechen gibt's da ein Problem.
Ich hab das eben so verändert das es die Delphi unit 'ZLib' die zip-Funktionen verwendet. Hab das erst mal so gemacht und versuche im Moment mal ne Funktion zu schreiben die das ganze für mich lösen soll (soll heißen ne eigene Komprimierung...). Den Source-Code hab ich auch geupt. Sehts euch an...