Thread mehre dateien in eine kopieren (15 answers)
Opened by mark05 at 2011-03-21 11:00

rosti
 2011-03-21 20:40
#146722 #146722
User since
2011-03-19
3505 Artikel
BenutzerIn
[Homepage]
user image
2011-03-21T10:00:45 mark05
liege ich da im groben richtig mit oder gibt es alternativen


Da bist Du bei mir genau richtig ;)

Ja, es gibt Alternativen, hier ein einfacher Algorithmus:
- öffne die neue Datei im binmode (:raw)
- schreibe 4 Bytes mit der Anzahl der internen Dateien
Code: (dl )
print $fh pack "N", $anzahl; # schreibt 4 bytes

- schreibe die Länge der ersten Datei
Code: (dl )
print $fh pack "N", length $file01;

- schreibe dann die bytes der ersten Datei
- schreibe 4 bytes mit der Länge der nächsten Datei
- schreibe die Bytes
usw.
- Datei zu

Auslesen in umgekehrter Reihenfolge. Wenn gewünscht, zeige ich ein Beispiel ;)

Edit: Umgekehrt wird nur pack() zu unpack(). Ansonsten:
- Datei zum Lesen öffnen
- lese 4 bytes, unpack mit Schablone "N", das ist die Anzahl der internen Dateien. Jetzt kann eine Schleife gelegt werden, Schleifenkörper:
- lese 4 bytes, das ist nach unpack "N", $bytes die Länge einer internen Datei
- lese aus dem Handle die Anzahl bytes wie vordem ermittelt
- nächster Schleifendurchlauf...

Dann gibts auch noch das Tar-Modul.

--Rolf

Last edited: 2011-03-21 20:54:01 +0100 (CET)

View full thread mehre dateien in eine kopieren