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
-
Ok ich helf dir
-
Danke, das hat mir schon sehr geholfen.