Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
surfer87
Anmeldungsdatum: 16.09.2004 Beiträge: 103
|
Verfasst am: 24.08.2007, 10:51 Titel: Mehere Dateien zu einer verbinden? |
|
|
Hi, ich habe mich gefragt ob es möglich ist mehrere Dateien zu einer zu verbinden, sodass alle aufgerufen werden.
Wäre nützlich für eine Setup Routine.
Es gibt zwar die Möglichkeit, dass man erst alle Dateien aus der gepackten per binary ausließt, speichert und dann öffnet, aber lassen diese sich auch irgendwie direkt öffnen?
Ich danke. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.08.2007, 10:55 Titel: |
|
|
direkt ist das nur, wei du schon erwähnt hast, nur im binary-modus mit einem header möglich. es gibt aber sicher auch DLLs, die solche routinen beinhalten. ich weiß nur, dass es dafür z.B. das PAK-Format von Quake gibt, aber das ist ja mit kanonen auf spatzen geschossen... sowas lässt sich nämlich relativ einfach selber bauen  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 24.08.2007, 10:56 Titel: |
|
|
Das ist meines wissens nur moeglich wenn Du auch die Laderoutinen dafuer selbst anfertigst, bzw die Laderoutinen sowas wie 'Load From Memory' unterstuetzen, so ist es nicht unmoeglich alle moeglichen Dateien in eine Datai zu speichern und auch wieder daraus zu laden, mit entsrechenden Headerinformationen wo welche Datei mit welcher groesse innerhalb der Datei zu finden ist... der Teil wird dann geladen/gestreamt (je nach groesse) und der entsprechenden verarbeitungs-/lade routine uebergeben...
(btw: etwas das ich mir schon lange mal vorgenommen habe )
Edit:
Jojo war schneller  _________________
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.08.2007, 16:47 Titel: |
|
|
ich bin ja nicht so wie du und poste einfach zeugs, das "vielleicht" stimmen könnte... Deswegen nun volle Info: PAK aus Quake kann alles speichern, und WAD muss es logischerweise auch, weil (zumindest Original-)WAD-Dateien komplette level (Doom und Spiele auf der Doom-Engine), also auch musik und alles beinhalten... wie du siehst, gibt es mehr als nur 1 format, und für qbasic existiert sogar ein Quake-Pack (PAK) Reader... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 24.08.2007, 17:03 Titel: |
|
|
Das weicht zwar vom Thema leicht ab aber mir ist es sogar schon gelungen, eine Art Installer mit FB zu schreiben. Die Dateien wurden direckt mit in die Exe Complitiert. _________________ Bis irgendwann... 
Zuletzt bearbeitet von AndT am 24.08.2007, 17:04, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 24.08.2007, 17:09 Titel: |
|
|
AndT hat Folgendes geschrieben: | Das weicht zwar vom Thema leicht ab aber mir ist es sogar schon gelungen, eine Art Installer mit FB zu schreiben. Die Dateien wurden direckt mit in die Exe Complitiert. |
Du meinst wohl angehaengt?
Wie gesagt, es ist moeglich, nur kann man beispielsweise eine BMP nicht mit BLoad Datein aus Datei laden man braucht dazu dann eine eigene laderoutine die entweder die datei aus der datei einliest oder aus dem speicher, das man die ganze datei in einen buffer laedt und von daraus verarbeitet.....[/quote] _________________
 |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 24.08.2007, 17:14 Titel: |
|
|
Es geht. Allerdings bräuchte man einen Header, welcher Informationen über die einzelnden Dateien hat.
Als minimale Information reicht aber auch schon die Startposition für jede einzelnde Datei.
Den header könnte man auf 3 weisen implentieren.
1. Die Headerinformationen direckt mit complitieren
2. Per Extradatei
3. Am Anfang einer Datei.
//Edit
Ich frage mich ob da nicht Zlib helfen könnte. _________________ Bis irgendwann... 
Zuletzt bearbeitet von AndT am 24.08.2007, 17:16, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 24.08.2007, 17:16 Titel: |
|
|
EternalPain hat Folgendes geschrieben: |
Das ist meines wissens nur moeglich wenn Du auch die Laderoutinen dafuer selbst anfertigst, bzw die Laderoutinen sowas wie 'Load From Memory' unterstuetzen, so ist es nicht unmoeglich alle moeglichen Dateien in eine Datai zu speichern und auch wieder daraus zu laden, mit entsrechenden Headerinformationen wo welche Datei mit welcher groesse innerhalb der Datei zu finden ist... der Teil wird dann geladen/gestreamt (je nach groesse) und der entsprechenden verarbeitungs-/lade routine uebergeben... |
 _________________
 |
|
Nach oben |
|
 |
Eisbaer

Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 24.08.2007, 17:47 Titel: CAB Dateien |
|
|
Es gibt da noch was nettes..
Das CAB-Dateiformat ist ein Format zur komprimierten Archivierung von Dateien, die Abkürzung steht für Cabinet (was z.B. für Gehäuse, Kasten oder auch (Akten)schrank steht).
Es ist ein Microsoft eigenes Format und damit in jedem Windows verankert.
Zum Erstellen von Cab Dateien gibt es das
Komandozeilen Tool "makecab.exe" das in der CMD mit dem
Paramter:
MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]
aufgerufen werden kann.
Und so kann über das CMD auch eine Datei wieder entpackt werden.
EXTRACT WIN95_02.CAB /D /A >> C:\CABS.TXT
Aber das war nun mehr was für die QB User als für die FB User...
Windows basierendes Freeware Tool zum erstellen:
http://www.forgesoft.net/index.php?id=wc.php
Und eine DLL zum Auslesen und extrahieren von Cab Dateien.
http://www.forgesoft.de/Resources/blitzcab.zip
Ist zwar für BlitzBasic entwickelt worden, sollte aber auch einfach in eine
Free Basic Umgebung zu Integrieren sein.
bzw. hier noch ein paar Links:
http://www.vbarchiv.net/archiv/tipp_578.html
http://www.tech-archive.net/Archive/VB/microsoft.public.vb.winapi/2004-07/0129.html
Grüße Eisbaer _________________ Eigene Webseite:
http://www.eisbaer-studios.de |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.08.2007, 18:05 Titel: |
|
|
@AndT:
Wow, das ist dir echt gelungen?
Ich glaub mit der Zeit hat das so oder so jeder schonmal für irgendetwas gebraucht.
Sorry, das musste jetzt raus... _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Eisbaer

Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 24.08.2007, 20:31 Titel: |
|
|
Naja Exe in Exe Packer sind ja auch nicht alzu schwirig zu realisieren.
Es ist kein Problem, an eine existierende Exe einfach hinten belibige Bytes anzuhängen, das macht sie nicht ungültig.
mal was primitives:
Code: | OPEN "main.exe" FOR INPUT AS #1
summe_bytes% = LOF(1)
CLOSE #1
OPEN "anhang.png" FOR INPUT AS #2
OPEN "main.exe" FOR APPEND AS #3
While NOT EOF(2)
input #1,inhalt$
Print #3, inhalt$
wend
print #3, summe_bytes%
Close #2
Close #3 |
Und dann kann sich die main exe ja selber auslesen beim lesen zum ende der Datei springen -1 einlesen (damit wir den Ursprünglichen End Byte Bekommen) und dann das Bild ab dem Byte Satz wieder zusammensetzen.
Ich hoffe der Code stimmt so einigermaßen, ist aus dem Kopf raus und nicht überprüft.
Grüße Eisbaer _________________ Eigene Webseite:
http://www.eisbaer-studios.de |
|
Nach oben |
|
 |
surfer87
Anmeldungsdatum: 16.09.2004 Beiträge: 103
|
Verfasst am: 21.09.2007, 18:24 Titel: |
|
|
Ist jetzt zwar schon ein wenig her, aber ich möchte nochmal eben meinen aktuellen Status erläutern.
Ich habe eine Entpackroutine, die über den zu entpackenden Exe Dateien sitzt. Um diese zu entpacken werden lediglich die Dateigrößen in Bytes benötigt, diese werden mitkompiliert.
Ich kann die Dateien also ohne Probleme entpacken.
Aber ich möchte immernoch keine unnötigen Dateien erstellen, damit ich erst dann die Dateien ausführen kann.
Was gäbe es für Möglichkeiten diese Dateien direkt zu streamen, bzw. welche Dateinformationen werden dafür benötigt?
Ich danke euch. |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 21.09.2007, 21:56 Titel: |
|
|
Du kannst die Files doch auch zB per Array / Data einbetten... so kannst du sie ohne weitere Festplattenzugriffe verwenden.
Und Komprimiern kannst du sie ja trotzdem noch, und in ein Array dekomprimiern. |
|
Nach oben |
|
 |
surfer87
Anmeldungsdatum: 16.09.2004 Beiträge: 103
|
Verfasst am: 22.09.2007, 00:27 Titel: |
|
|
Hm hat jemand den Nerv, mich da grad ein wenig über ICQ zu unterstützen?
Ich will hier nur nicht wie wild alle Leute adden, da ich nicht nerven möchte.
Wäre nett  |
|
Nach oben |
|
 |
|