Dateiformate

Für die Interpretation einzelner Informationen (z.B. eine Zahl, eine Farbe) braucht man eine Codierung, für die Interpretation einer Datei braucht man ein Format.

MATERIALIEN

 

Das «Format» legt fest, wie der Computer die digitale Information decodieren muss, damit die gewünschte Information herauskommt.

Das Dateiformat

Jede Datei braucht ein Format, nicht nur solche, die Bilder enthalten. Ein Format legt fest, wie die zumeist langen Bitsequenz interpretiert wird, die unter einem Dateinamen gespeichert ist. Das Problem dabei ist, dass Dateien nicht nur viel Information enthalten können, sondern meist auch verschiedene Arten. Beispielsweise wollen wir selten nur Text speichern, sondern beispielsweise auch, wie welches Zeichen aussehen soll oder wie der Text über die Seite verteilt wird – und solche Layout-Informationen müssen ebenfalls definiert und in der Datei abgelegt werden (können). Je mehr verschiedene Arten von Information in einer Datei gespeichert werden können, desto komplizierter ist das Format. 

Um sehr unterschiedliche Informationen geht es beispielsweise bei Film-Formaten. Hier braucht es mindestens eine Videospur (die wieder ein eigenes Format, bzw. einen Codec benutzt, z.B. H.264 oder MPEG-4) sowie eine Audio-Spur (mit einem Sound-Format, z.B. .mp3 oder .acc). Gegebenenfalls sind aber auch mehrere alternative Audiokanäle (z.B. andere Sprachen) erlaubt, oder Untertitel (=Text + Timing) oder ein Auswahlmenü wie auf einer DVD. Ausserdem soll das Ganze vielleicht noch so angeordnet und komprimiert sein, dass man es streamen kann.

Genau genommen hat ist eine Video-Datei meist ein Container-Format, das weitere Bestandteile (in ihren jeweiligen Formaten) enthält.

Wie bei Grafikformaten setzen auch andere Formate zudem verschiedene Schwerpunkte bei der Repräsentation der enthaltenen Information(en), z.B. Kompaktheit, Allgemeinheit, Fehlertoleranz, Verschlüsselung, usw.

Im Einzelnen sind Formate also extrem divers, sodass man sich ggf. für einen bestimmten Anwendungsfall ein wenig in die verfügbaren Optionen und Ihre jeweiligen Vor- und Nachteile einarbeiten muss. Gerade dafür ist es allerdings sehr nützlich zu wissen, was genau ein Dateiformat überhaupt ist.

Dateiformat

Ein Dateiformat definiert die Syntax (Aufbau) und die Semantik (Inhalt) von Daten innerhalb einer Datei. Es stellt damit eine bidirektionale Abbildung von Information auf einen eindimensionalen binären Speicher dar.

Quelle: https://de.wikipedia.org/wiki/Dateiformat

Ein Dateiformat kann also als Sammlung von Regeln für die Reihenfolge und die Codierung(en) von Daten verstanden werden.
Diese Regeln braucht man in zwei Richtungen:

  1. Wenn man Informationen in einer Datei ablegen will (=Codierung).
  2. Wenn man Daten in Form einer Datei bekommt und diese als Information interpretieren will (=Decodieren).

Damit das funktionieren kann,

  • müssen diese Definitionen (Regeln) für ein Dateiformat bekannt sein (zumindest den Programmierern);
  • muss für jede Datei klar sein, welcher Regelsatz (Dateityp) verwendet wird (diese Informationen kann meist der Dateiendung und/oder dem Header entnommen werden).

Analogie

Collage Oinf (https://commons.wikimedia.org/wiki/File:3D_dusk_on_Desert.jpg, https://pixabay.com/photos/2141365)

Formate lesen

Ein Format ist so etwas wie eine Brille, die man benötigt, um die gespeicherte Bitsequenz zu lesen. Was aber, wenn man sich die Bits ansehen möchte, ohne dass ein Programm mit der richtigen Brille sie schon gleich interpretiert? Dafür gibt es zwei Möglichkeiten:

  1. Zumeist kann man den Computer dazu bringen, eine Datei mit der einfachst möglichen, nämlich der ASCII-Brille zu betrachten. Dazu muss man die Datei in einem Text-Editor öffnen, der so simpel ist, dass er gar nichts anderes kann als die Bitsequenz in Achter-Blöcken in Zeichen umzuwandeln. Unter Windows ist das WordPad ein solches Programm, zum Öffnen einer Fremd-Datei bewegt man es entweder durch Rechts-Klick→ Öffnen mit…, oder indem man die Dateiendung zu .txt ändert.
    Beide Methoden funktionieren aber nicht immer, da in moderne Betriebssysteme zunehmend mehr Techniken eingebaut werden, die dafür sorgen, dass Dateiformat und Programm zusammenpassen.
  2. Es gibt noch eine professionelle Lösung: Man öffnet die Datei in einem sogenannten Hex-Editor. Diese Programme sind speziell dazu da, «rohe» Bitsequenzen darzustellen – mindestens als Hexadezimalzahlen, meist auch als ASCII-Zeichen, als Bits und/oder weitere übliche Codierungen.

Aufgabe

Ausprobieren: Ein guter Online-Hex-Editor findet sich unter hexed.it.
Sie können Ihr Verständnis der besprochenen Dateiformate überprüfen, indem Sie sich die enthaltenen Daten Byte-weise anschauen (bspw. Raetsel.txt, Beispiel.rtf, oder icon.bmp).

Office-Formate

Die modernen Office-Dokumentformate (z.B. .docx, .pptx, .xlsx) gehören zu einer ganzen Familie von XML-basierten Formaten, die alle recht ähnlich funktionieren (das ist genau der Sinn des XML-Standards). Eigentlich funktionieren diese Formate fast wie das im Internet allgegenwärtige HTML. Allerdings gibt es ein Problem: Internetseiten bestehen nicht aus einer, sondern aus mehreren Dateien. Und genauso ist es auch mit den Office-Formaten, allerdings verstecken sie diese Tatsache: Ein .docx ist eigentlich ein gezippter Ordner, nur wird das vom Betriebssystem nicht angezeigt. Wenn man es aber weiss, dann kann man entpacken, sich die enthaltenen Dateien anschauen und sie sogar manipulieren – ohne dass man jemals ein Office-Programm zu öffnen bräuchte.

Aufgabe

In der Anleitung PPTX_hacken.pdf wird genauer beschrieben, wie das geht.

Eigene Formate

Eine weitere interessante Frage ist diese: Was, wenn noch niemand ein Format erfunden hat für die Art von Information, die ich speichern möchte? Die Antwort: Dann muss man selbst ein Format erfinden.

Aufgabe

Das Arbeitsblatt SpieleFormate_erfinden.pdf enthält mehrere solche Aufgaben.