Dateien in eine Datei "schreiben" und "lesen"

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von haiyyu.

    Dateien in eine Datei "schreiben" und "lesen"

    Hi ich habe folgende Dateien:
    - 1.bmp (40 MB)
    - 2.bmp (20 MB)
    - 3.bmp (22 MB)
    - 4.bmp (3 MB)

    diese möchte ich nun in EINE Datei schreiben "bilder.dat" und wieder auslesen.
    Frage, wie kann ich diese Dateien in eine Datei schreiben so das alle drinnen sind und das ich Sie mit einem String z.B "GetFile("1.bmp")" wieder auslesen kann?
    Gibt es möglichkeiten?
    Mfg
    Das Problem hatte ich vor ein paar Tagen auch. ich hab dann einfach alles in ne
    Passwortgesicherte Zip gespeichert ^^

    Falls es dich interessiert:
    [VB 2008] Eigenes 'Archivdingens'
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    domipoppe schrieb:

    Gibt es möglichkeiten?

    Jede Menge.

    Das einfachste (bei großen Dateien recht unperformant):

    4 Byte Zeiger auf nächsten "Datensatz"
    x Byte "Name" der Datei
    2 byte NULL zum terminieren des Namens
    x Byte Daten der Datei

    usw usw usw

    Hat den Vorteil, dass man leicht was dazuschreiben kann und den Nachteil, dass ... (hier füge man das Ergebnis von brain.exe ein)
    Will man die Datei nur einmal erzeugen, kann man natürlich den Header komplett vorneweg setzen

    repeat:
    4 Byte Zeiger auf eigenen Datenbereich
    4 Byte Länge des Datenbereichs
    x Byte "Name" der Datei
    2 byte NULL zum terminieren des Namens
    repeat
    x Byte Daten der Datei


    Das ganze läßt sich "beliebig" ausbauen
    @domipoppe
    Das war ursprünglich auch mein Ziel, hat aber nicht so gut geklappt.
    Daher das mit der Zip. Kannst dir ja man den Thread ansehen ;)
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Ich habe in den letzten Tagen übungsweise an so einem Projekt gearbeitet, um mich mal mit Streams zu befassen.
    Ich kann dir meine Klassen in eine Bibliothek packen und sie dir schicken (samt Source).
    Sie funktionieren alle ganz gut und erlauben dir, eine Liste von Dateien in eine Datei zu packen und sie anschließend wieder auszupacken.
    Das Format davon sieht so aus:

    Ganz am Anfang:
    4 Bytes: Länge des Dateiverzeichnisses

    Für jede Datei:
    4 Bytes: Länge des folgenden Dateinamens
    x Bytes: Dateiname
    8 Bytes: Länge der Datei (Größe in Bytes)

    Nach dem Dateiverzeichnis werden einfach alle Dateien direkt nacheinander in die Datei geschrieben.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „haiyyu“ ()