AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SFXTools

Ein Thema von Luckie · begonnen am 23. Okt 2003 · letzter Beitrag vom 25. Nov 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Luckie
Luckie
Registriert seit: 29. Mai 2002
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.

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 ). 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.

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:
SFXArchiveMaker [61 KB]

Link korrigiert.
Ein Teil meines Codes würde euch verunsichern.
 
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#2
  Alt 23. Okt 2003, 10:05
Danke. So was wollte ich schon lange mal basteln, jetzt habe ich die Grundlage

......
Daniel Lizbeth
  Mit Zitat antworten Zitat
Benutzerbild von Darty
Darty
 
#3
  Alt 23. Okt 2003, 12:06
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 ?
Matthias Knebel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#4
  Alt 23. Okt 2003, 17:41
Da will sich wohl jemand davor drücken nonVCL lesen zu mpüssen was? 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.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Darty
Darty
 
#5
  Alt 24. Okt 2003, 20:53
Zitat von Luckie:
Da will sich wohl jemand davor drücken nonVCL lesen zu mpüssen was?
Wer dass wohl ist
Matthias Knebel
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#6
  Alt 14. Nov 2003, 16:00
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.
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#7
  Alt 14. Nov 2003, 16:42
Ist das dann auch Open-Source oder hast du einfach so mal hier gepostet?
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#8
  Alt 14. Nov 2003, 16:59
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.
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#9
  Alt 14. Nov 2003, 17:02
Neuer Thread bitte für dieses Thema.
Michael
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#10
  Alt 14. Nov 2003, 17:08
ok,
hier habe ich mal diese frage gepostet:
http://www.delphipraxis.net/internal...?p=95449#95449
Michael Springwald
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.
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