Archiv-Programm (benötige Binärdateizugriff-Wissen, allgemeine Tipps usw.)



  • Hi.

    Ich möchte ein Programm in C++ schreiben, das mehrere Dateien zu einem (unkomprimierten) Archiv zusammenpackt.

    Der Aufbau des Archivs stelle ich mir so vor (Verbesserungsvorschläge erwünscht!):
    [Größe vom Dateinamen in Byte]
    [Dateiname (z.B. "Datei.bmp")]
    [Größe der Datei in Byte]
    [Normaler Inhalt der Datei]
    Danach kommt dann die nächste Datei des Archives, die genauso an die Archiv-Datei angehangen wird.

    Das Programm sollte etwa so funktionieren:

    Datei hinzufügen

    • Archiv zum Schreiben öffnen (ans Ende schreiben)
    • Neue Datei, die hinzugefügt werden soll, zum Lesen öffnen
    • Größe des Dateinamen in Byte ermitteln und in die Archiv-Datei schreiben
    • Dateiname in die Archiv-Datei schreiben
    • Größe der Datei, die hinzugefügt werden soll, ermitteln und in die Archiv-Datei schreiben
    • Die Bytes der Datei, die hinzugefügt werden soll, in die Archiv-Datei schreiben
    • Beide Dateien schließen

    Datei entpacken

    • Archiv zum Lesen öffnen
    • Zur Datei springen, die entpackt werden soll (Nummer der entsprechenden Datei wird als Parameter der Funktion übergeben. Die erste Datei im Archiv ist Datei 0. Die nächste Datei ist Datei 1 usw.)
    • Größe des Dateinamen-Strings auslesen und damit den Dateinamen lesen
    • Neue Datei mit Namen des ausgelesenen Dateinamen erstellen und zum Schreiben öffnen
    • Größe der Daten aus dem Archiv lesen
    • Daten in die neue Datei schreiben
    • Beide Dateien schließen

    Ihr erwarte nicht, dass ihr mir das komplette Programm schreibt, sondern ich bräuchte nur Tipps, weitere Denkanstöße, Quellcode-Abschnitte, Pseudocode und (ganz wichtig!) zu wissen, wie ich auf Binärdateien zugreife. Ich muss alle Funktionen und Klassen / Methoden wissen, die ich für das Programm benötigen werde.

    Wer mir dabei hilft wird hoch und heilig von mir verehrt 😉





  • Danke, das hat mir schon sehr geholfen.


Anmelden zum Antworten