Binär- und Textdatei
| Inhaltsverzeichnis |
Allgemeines
Dateien lassen sich grob in zwei Kategorien unterteilen: Binäre Dateien und Textdateien. Eine Textdatei ist der Spezialfall einer binären Datei, bei der die in der Datei enthaltenen Zeichen alle als Text darstellbar sind.
Die Unterscheidung ist etwas spitzfindig, denn die Schaltkreise, die dafür sorgen, dass Informationen auf eine Festplatte geschrieben oder von ihr gelesen werden, kennen keine solche Unterscheidung zwischen Text und anderen Daten. Die Software, die sich mit diesen Schaltkreisen beschäftigt, macht diese Unterscheidung ebenfalls nicht. Auf der anderen Seite sind Menschen durchaus an der Unterscheidung interessiert.
Textdateien
Textdateien sind Dateien, die eine allgemeine Eins-zu-Eins-Übereinstimmung zwischen den Bytes und den menschenlesbaren Zeichen (Buchstaben, Satzzeichen und Ziffern) besitzen. Daher kann eine solche Datei mit jedem einfachen Dateibetrachtungsprogramm lesbar angezeigt werden. Zum Bearbeiten solcher Dateien reicht ein einfacher Texteditor wie beispielsweise Notepad, Textpad, Vim oder Emacs.
Allgemein enthalten Textdateien lesbare ASCII-Zeichen und ein paar vom Zeichensatz festgelegte Steuerzeichen wie Tabulatoren, Zeilenvorschübe (line feed) und Wagenrückläufe (carriage return), aber keine zusätzliche eingebettete Information wie z.B. Informationen über Schriftarten, Hyperlinks oder Grafiken. Wegen dieses einfachen Aufbaus solcher Dateien spricht man von einfachem Text oder Klartext (engl. plain text).
Obwohl Textdateien im Allgemeinen für Menschen lesbar sind, können sie von Computerprogrammen auch dazu verwendet werden, Daten zu speichern. Dies kann zum Beispiel getan werden, um Probleme zu vermeiden, die beim Verwenden von Binärdateien auftreten können, wie beispielsweise das Problem der Byte-Reihenfolge oder die Bytelänge von Ganzzahlen. Daten- und Konfigurationsdateien, die im Textformat gespeichert sind, werden auch als Flache Dateien (Flat Files) bezeichnet.
Ein Nur-Text-Dokument enthält (größtenteils) unformatiertes Textmaterial und ist für gewöhnlich als Datei abgelegt.
Im Gegensatz zu einfachem Text enthalten Dateien mit formatiertem Text vielfältige Steuersequenzen, z.B. für Textformatierungen (Fettschrift, Kursivschrift, Unterstreichungen etc.), Seitenformatierungen (Randabstände etc.), Kopf- und Fußnoten oder Bildinformationen. Solche Steuersequenzen können wiederum in einem menschenlesbaren Klartext-Format vorliegen (Beispiel RTF) oder in einem für Menschen äußerst schwer nachvollziehbaren Binärformat (Beispiel MS Word). Während für die Bearbeitung von Binärformaten ein spezielles Textverarbeitungsprogramm notwendig ist, kann ein Format wie RTF von einem versierten Anwender notfalls auch in einem einfachen Texteditor bearbeitet werden.
HTML ist ein Beispiel für ein Format, bei dem Text nicht physisch, sondern semantisch gekennzeichnet wird (siehe dort für weitere Erklärungen). Eine Webseite mit formatiertem Text ist in diesem Sinne kein Nur-Text-Dokument, aber ihr zugehöriger HTML-Quellcode ist einfacher Text. Die Unterscheidung ist hier verschwommen.
Auch einfacher Text unterliegt einem Zeichensatz, also einer Zuordnung von Zahlen zu Zeichen. (Computer arbeiten intern nicht mit Zeichen, sondern immer mit Zahlen, deswegen ist so eine Zuordnung notwendig.) In der Regel wird für Textdateien ein auf ASCII basierender Zeichensatz verwendet. In Westeuropa und den englischsprachigen Ländern sind ISO 8859-1 und UTF-8 üblich. Wird eine Textdatei nicht unter Verwendung des korrekten Zeichensatzes geöffnet, ist die Zuordnung von Zeichen zu Zahlen fehlerhaft, und es entsteht Zeichensalat.
Der MIME-Medientyp von einfachen Textdateien ist text/plain, häufig mit Suffixen, die eine Kodierung angeben. Allgemeine Kodierungen für Textdateien schließen Unicode UTF-8, Unicode UTF-16, ISO 8859 und ASCII ein. Wenn Textdateien in ostasiatischer Kodierung wie SJIS oder Unicode dargestellt sind, können sie auch Zeichen enthalten, die nicht aus dem ASCII-Zeichensatz stammen. Ist eine Datei in Unicode gespeichert, so definiert ein UTF-Standard wie UTF-8 die Kodierung.
Bei Verwendung von MS-Windows als Betriebssystem wird den Namen von Textdateien in der Regel die Endung .txt verliehen. In Zeiten, zu denen MS-DOS verbreitet war, war auch die Endung .doc üblich.
Quellcode von Computerprogrammen wird normalerweise als Textdatei geschrieben, aber durch das Kompilieren wird er zu einer Binärdatei, wie unten beschrieben.
Das Übertragen von Textdateien zwischen Unix, Macintosh und Microsoft Windows oder DOS-Rechnern kann problematisch sein, da jede Plattform unterschiedliche Zeichen verwendet, um den Anfang einer neuen Zeile zu kennzeichnen (zu diesem Problem siehe Zeilenumbruch).
Der verwandte Begriff plaintext wird gemeinhin im Zusammenhang mit Kryptographie verwendet, während cleartext sich üblicherweise auf mangelnde Abhörsicherheit bezieht. Diese Begriffe werden im Englischen häufig verwechselt. Auf Deutsch heißt beides Klartext.
Binärdateien
Eine Binärdatei (engl. binary file) enthält im Unterschied zu einer reinen Textdatei nicht-alphabetische Zeichen, und kann jeden beliebigen Bytewert enthalten. Binärdateien werden im Allgemeinen eher dazu verwendet, Daten abzuspeichern, als dass in ihnen Textmaterial gespeichert wird.
Computerprogramme sind ein typisches Beispiel, denn die Daten und CPU-Befehle, die sie enthalten, können – im Prinzip – jeden beliebigen Bytewert annehmen. Aus diesem Grund nennt man kompilierte Programme oft einfach Binaries, im Gegensatz zum Quellcode, der als lesbare Textdatei abgespeichert ist. Binärdateien können aber auch Grafikdateien, Audiodateien, komprimierte Dateien usw. sein, kurz gesagt jeder Dateiinhalt außer Text.
Üblicherweise zeigt die Spezifikation des Dateiformats einer Binärdatei, wie mit der Datei zu verfahren ist. Grundsätzlich zählen alle Dateien zu Binaries, die keinen lesbaren Text enthalten. Für die meisten der heute verwendeten 8-Bit-Zeichensätze gilt: nicht lesbare Sonderzeichen sind Zeichen mit ASCII-Werten von 0 bis 31 und lesbare Zeichen sind Zeichen mit Werten von 32 bis 126. Die Lesbarkeit von Zeichen mit Werten ab 127 ist abhängig vom verwendeten Zeichensatz.
Binärdateien werden gelegentlich auch in einer Nur-Text-Repräsentation kodiert, um Störungen während einer Übertragung zwischen verschiedenen Computersystemen zu vermeiden, indem man Codierschemata wie Base64 verwendet. Als Beispiele seien auch UUE- und MIME-Formate angeführt.
Um den unverfälschten Inhalt einer Binärdatei anzusehen, ist meist zusätzliche Software erforderlich. Für diese Aufgabe kann z.B. ein Hexadezimaleditor verwendet werden. Wird hingegen versucht, eine Binärdatei beispielsweise direkt auf die Standardausgabe zu senden, um den Inhalt auf dem Bildschirm anzusehen, wird der Inhalt verfälscht, da bestimmte Bytes oder ganze Bytefolgen als Steuerzeichen bzw. Steuersequenzen interpretiert werden. Dies äußert sich in den meisten Fällen in einem Konzert aus häufigem Piepsen, Zeichensalat oder auch gar keiner Ausgabe. Das ist deshalb so, weil in einer Binärdatei häufig alle möglichen 256 Zustände eines Bytes anzutreffen sind.
Nützliche Werkzeuge zum Betrachten des Inhaltes von Binärdateien unter Unix und Linux sind od (Abkürzung für englisch octal dump – oktales Speicherabbild) oder strings.
Wie die acht Bit eines Bytes verwendet werden, um Dezimalzahlen darzustellen, ist unter Dualsystem beschrieben.
