Autor Beitrag
VampireSilence
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109
Erhaltene Danke: 5


C# (VS 2008 Express), PHP/MySQL, Windows XP
BeitragVerfasst: Sa 16.03.13 22:56 
Hallo Zusammen,

ich habe eine generelle Frage zur Erstellung von Container-Dateien. Ich möchte mehrere Dateien beliebigen Inhalts in eine Container-Datei verpacken, so wie es z. B. in *.zip-Dateien der Fall ist.

Mein erster Ansatz war sehr simpel, denn ich könnte ja einfach alle Dateien hintereinander schreiben und mit einem Trennwort trennen, z. B. "**NEXT FILE**", wenn aber eine Datei diese Textpassage enthält, so wird sie zerteilt. Also keine gute Idee.

Meine zweite Idee war alle Dateien zunächst in einen Base64-Hash umzuwandeln und dann nur Zeichen zur Trennung zu verwenden, die keinem dieser 64 entsprechen. Damit würden auch direkt die 0x00-Zeichen verschwinden, die in Strings auch schonmal Probleme machen können. Aber hier habe ich es direkt etwas einfacher gemacht und nur ein einziges Zeichen zur Trennung verwendet, wobei ich dieses innerhalb der Dateien escaped habe, sodass es dort nicht mehr vorkommen kann.

Und an diesem Punkt fällt mir leider nichts Besseres ein. Trotzdem finde ich die Lösung noch nicht sehr sauber und da ich ja nicht der Erste bin, der Container-Dateien erstellt, möchte ich um Tipps bitten, wie man ein solches Problem auf die beste Art und Weise löst.

Gruß und danke schonmal im Voraus

- VampireSilence
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 17.03.13 00:27 
Spricht etwas dagegen, wirklich eine ZIP-Datei zu verwenden?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
VampireSilence Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109
Erhaltene Danke: 5


C# (VS 2008 Express), PHP/MySQL, Windows XP
BeitragVerfasst: So 17.03.13 14:23 
Vom Funktionsprinzip her nicht, allerdings möchte ich im Anschluss noch bestimmte Dinge beeinflussen können, die in einer echten *.zip-Datei unnötig kompliziert würden. Deshalb wäre es mir sehr wichtig das Containerformat von Grund auf selbst zu definieren.

Gruß
- VampireSilence
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 18.03.13 02:37 
Vor die Daten jeweils die Länge dieser in Byte schreiben und gut ist ;) . So macht das jedes Protokoll.

_________________
>λ=

Für diesen Beitrag haben gedankt: VampireSilence
san-software
Hält's aus hier
Beiträge: 11
Erhaltene Danke: 3



BeitragVerfasst: Mo 18.03.13 15:03 
Man könnte natürlich auch ganz am Anfang des Files ein kleines Inhaltsverzeichnis stellen, mit Name der Datei, Offset und Länge der Datei. dann muß man nicht immer den ganzen Containter durchsuchen, wenn man eine Bestimmte datei haben will.

Für diesen Beitrag haben gedankt: VampireSilence