![]() |
SFXTools
Da immer wieder die Frage aufkommt, wie man selbstextrahiernde Dateien erstellt, habe ich mich mal dran gesetzt und ein Demo dazu programmiert.
Wie es funktioniert: Startet man die SFXArchiveMaker.exe sieht man ein zwei geteiltes Fenster. Der obere Bereich dient dazu das SFXArchiv zu erstellen. Man wählt Dateien aus (bis 99 Stück) und klickt auf "SFX erstellen". daraufhin werden die Dateien mit copy /b an die datei SFXArchivemaker.exe drangehangen und unter den Namen SFXArchiv.exe im Anwendungsverzeichnis gespeichert. Führt man diese SFXArchive.exe jetzt aus, hat man eigentlich die SFXArchiveMaker.exe vor sich. Jetzt kommt der untere Teil des Fensters zur Anwendung. Klickt man da auch "Entpacken" werden die angehangenen Dateien in das Anwendungsverzeichnis entpackt. Welche Dateien angehangen wurden steht in einem Header, der ganz zum Schluß angehangen wurde. Im header steht drin: Die Anzahl der angehangenen Dateien und zu dein einzelnen Dateien der Dateiname, die Datei größe und wo sich die Datei in der SFXArchive.exe befindet. Dieser Header ist statisch für 99 Dateien ausgelegt. War einfachher. Denn dann weiß ich immer wie groß er ist und muss das nicht noch dazu schreiben. hat natürlich zur Folge, dass immer 26 KB angehangen werden auch wenn es nur 2 oder 3 Dateien sind. Was das Demo nicht kann: - Verzeichnisstruktur beibehalten. - Packen der Dateien. - Einen dynamischen Header erzeugen. - Die Routinen für das Anhängen und Extrahieren behinhalten eine integrierte Fehlerbehandlung. Die VCL Routinen (ButtonClicks) nicht unbedingt. :zwinker: Sinn oder Unsinn des Programmes: Nun, so lange man die Dateien nicht gepackt werden und die Verzeichnis Struktur verloren geht, ist dieses Programm jeden Packprogramm welches SFXArchive erstellen kann natürlich unterlegen. Aber nichts desto trotz kann es als Anschauungsmaterial für weitere Entwicklungen dienen. Was ich noch machen werde: Ich werde eine nonVCL Version machen (ein SFXArchiv, was selbst schon 400 KB groß ist, ist eigentlich ein Witz :mrgreen:). Und ich werde das Programm teilen. Also ein Programm welches die Dateien an ein Programm dranhängt, welches nur entpacken kann. dann werde ich noch eine Version entwicklen, die auch die Verzeichnisstruktur mit speichert. Das mit dem packen muss ich mal sehen, wenn sich da was kleines finden läßt (Zlib nutzt Classes), werde ich mal sehen, wie man das noch integrieren kann. Und wenn ich das dann geschaft habe, dann habe ich was eigenes mit dem ich meine Programme zum Download anbieten kann. :P Wichtig: Kompiliert man das Programm neu, muss man eventeull im Source die Konstante EXEFILESIZE anpassen, da sie angibt, wo die angehängten dateien beginnen und die Exe endet. Anpassen deswegen, weil unterschiedliche Delphi versionen unterschiedlich große Exe-Dateien erzeugen. Download: ![]() Link korrigiert. |
Re: SFXArchivMaker
Danke. So was wollte ich schon lange mal basteln, jetzt habe ich die Grundlage :firejump:
...:cat:... |
Re: SFXArchivMaker
Super Idee Luckie .. Werde ich bald testen ..
Wäre es nicht möglich auch die Verzeichnisse u.s.w. mit zu archivieren ? Bevor an die NonVCL Version ranmachst ? |
Re: SFXArchivMaker
Da will sich wohl jemand davor drücken nonVCL lesen zu mpüssen was? :zwinker: Also mehr werde ich hier nicht veröffentlichen. Die nächste Veröffentlichung wird die mit der Verzeichnisstruktur sein und das wird dann schon nonVCL sein, wobei ich den eigentlichen Engin wohl mit einem VCL Demo-Projekt entwickeln werde.
|
Re: SFXArchivMaker
Zitat:
|
Re: SFXArchivMaker
sowas schreibe ich auch gerade und bin schon zimlich weit:
ich kann: - Achive erstellen - Dateien hinzufügen - Dateien löschen - Archvie Updaten - Archive Komprimieren mit Bzip2 - SFX Dateien erstellen --------------------------------- aber ich werde noch einiges hinzufügen *G* und den qullcode überarbeiten. was ich noch hinzufügen werde ist folgendes: - Verschlüsslungen(verschiedne sollen zur auswahl stehen) - Verschiedne Packformate z.b. zip, cab, was halt so FreeWare ist und wozu ich eine unit finde die mit Stream arbeiten kann. - Dateien(mir ist kein namen eingefallen): ich habe z.b. in einem achiv 30 dateien davon möchte ich die ersten 10 dateien packen die nächsten 10 dateien zu lassen wie sie sind und die letzen 10 dateien möchte ich verschlüsseln. - Datei gruppen. sowas änliches wie verzeichnise. |
Re: SFXArchivMaker
Ist das dann auch Open-Source oder hast du einfach so mal hier gepostet? ;)
|
Re: SFXArchivMaker
ja, es soll OS werden, wenn es soweit ist.
dann könnten wir all an einem gemeinems eigenen super format entwickeln, was haltet ihr davon ? es bringt doch wirklic nichts, wenn wir alle unser eigens format nahmen und der "normale" user dann 1000 programm haben müsste nur um alle zu entpacken. ich schlage deshalb folgendes vor: wir entwickeln unser einges format. was haltet ihr davon ? und zwar von anfang an. |
Re: SFXArchivMaker
Neuer Thread bitte für dieses Thema.
|
Re: SFXArchivMaker
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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