mini|alt=95 ASCII-Zeichen, weiße Schrift auf schwarzem Grund|Die 95 druckbaren Zeichen des ursprünglichen ASCII
Als Textdatei wird in der Informationstechnik eine Datei bezeichnet, die darstellbare Zeichen enthält und zum Speichern, Bearbeiten, zur Datenübertragung und Lesen dient.
Allgemeines Die Zeichen können durch Steuerzeichen wie Zeilen- und Seitenwechsel untergliedert sein. Ein Text ist aus Sicht der Informationstechnologie ein aus Buchstaben des Alphabets, Zahlzeichen und anderen Zeichen (wie Sonderzeichen) zusammengesetzter Datenbestand, der in einer Textdatei erfasst ist.Detlef Jürgen Brauner, Robert Raible-Besten, Martin M. Weigert (Hrsg.): Multimedia-Lexikon. 1998, S. 340.
Das Gegenstück zur Textdatei ist eine Binärdatei. Im Grunde werden auch Textdateien binär gespeichert, die Begriffe werden jedoch komplementär verwendet, denn die Interpretation des binären Inhalts ist ausschlaggebend: Bei einer Textdatei wird der Inhalt als sequenzielle Folge von Zeichen eines Zeichensatzes interpretiert, bei einer Binärdatei ist eine beliebige anderweitige Interpretation des Inhalts möglich.Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen: Java Actually: A First Course in Programming. Cengage Learning EMEA, London 2007, ISBN 1-84480-418-6, S. 268 (Google Books) Folglich ist eine Textdatei im Gegensatz zu einer Binärdatei ohne die Verwendung spezieller Programme lesbar und kann mit einem einfachen Texteditor – wie beispielsweise mit Notepad unter Windows oder vi oder Nano unter Unix – betrachtet und bearbeitet werden.Nell B. Dale, John Lewis: Computer science illuminated. Jones & Bartlett Learning, Burlington 2013, ISBN 978-1-4496-6573-9, S. 364 f. (Google Books)
Im Gegensatz zu dieser fachsprachlichen Definition des Begriffs Textdatei, bei der das Dateiformat ausschlaggebend ist, orientiert sich die umgangssprachliche Verwendung des Begriffs häufig primär am für den Endbenutzer sichtbaren Inhalt der Datei: Dabei werden etwas unscharf alle Dateien als „Textdatei“ bezeichnet, die mit dem Ziel erstellt wurden, einen lesbaren Text zu präsentieren, unabhängig davon, in welcher Form sie gespeichert werden. Bei den von üblicher Textverarbeitungs- oder Publishingsoftware bei Speicherung erzeugten Dateien handelt es sich jedoch häufig um komplexe Dateiformate, die neben dem Text Metainformation zur Beschreibung des Textlayouts, der Struktur und der verwendeten Schriften enthalten; zudem können Bilder oder Grafiken eingebettet sein. Deshalb handelt es sich um keine Textdateien im fachsprachlichen Sinn, da die Dateiformate häufig binär sind und zur Anzeige eine spezielle Software erforderlich ist.
Bei einer Textdatei im fachsprachlichen Sinn wird die Menge der verfügbaren Zeichen durch die zugrunde liegende Codierung bestimmt. Am gebräuchlichsten sind hierbei ASCII oder UTF-8, eine Codierung des Unicode. Eine solche Textdatei muss dabei nicht notwendigerweise Text enthalten – es kann sich beispielsweise auch um ASCII-Art handeln, also um Piktogramme auf Basis der verfügbaren Zeichen. Wenn es sich jedoch um Text handelt und zum Verständnis der Bedeutung weder besondere Verarbeitungsschritte noch die Kenntnis einer speziellen Notation erforderlich sind, wird der Inhalt als Plain text bezeichnet. Die Zeichenmenge wird aber auch häufig durch eine natürliche oder formale Sprache eingeschränkt. Textdateien, die eine bestimmte Notation erfordern – wie beispielsweise HTML-Dateien – können zwar mit einem einfachen Texteditor bearbeitet werden, jedoch gibt es hierfür oft spezielle Programme, die die Bearbeitung erleichtern – beispielsweise durch besondere Hervorhebungen oder automatische Formatierungen.
Geschichte In der Anfangszeit der elektronischen Datenverarbeitung war die Unterscheidung zwischen Text- und Binärdateien einfacher als heute. Bei einer Textdatei wurde ein Zeichen immer direkt in ein spezielles Bitmuster umgesetzt. Die Datei konnte ohne Umwege – das heißt Zeichen für Zeichen, ohne jegliche Umsetzung durch ein spezielles Programm – zu einem Terminal, Drucker oder Fernschreiber übertragen werden.Steve Moritsugu, Sanjiv Guha, David Pitts: Practical Unix. Que, 1999, ISBN 0-7897-2250-X, S. 218 (books.google.de) Der bei Übertragung zwischen Fernschreibern verwendete Baudot-Code ist auch der Ursprung der in Textdateien zu findenden Steuerzeichen „Zeilenvorschub“ oder „Wagenrücklauf“.
Zur Umsetzung der physisch gespeicherten Bitfolgen in einem Text wird eine Zeichenkodierung verwendet. Früher wurde dabei nahezu ausschließlich ein Zeichen immer in genau ein Byte umgesetzt, also im Regelfall eine Gruppe von 8 Bit, die so 256 (entspricht 28) verschiedene Zeichen ermöglichte. Bei der Codierung mittels ASCII in der ursprünglichen Definition wurden tatsächlich nur 7 Bits verwendet.Der Sachverhalt, dass das höchstwertige Bit in Textdateien, die den ursprünglichen ASCII verwendeten, immer 0 war, wurde auch von Heuristiken zur Unterscheidung von Text- und Binärdateien verwendet.
Mit den 7- oder 8-Bit-Zeichensätzen kann nur jeweils eine Schrift in einer Datei verwendet werden; die Verwendung verschiedener Sprachen ist nur bedingt möglich. Die ostasiatischen Schriftsysteme, wie Japanisch, Chinesisch und Koreanisch, können praktisch überhaupt nicht abgebildet werden. Mit ISO 2022 gab es im Jahr 1986 erstmals einen Standard, der die Verwendung verschiedener Schriften in einer Textdatei ermöglichte, und der auch Schriften vorsah, die mehr als 256 verschiedene Schriftzeichen verwenden. Dieser Standard erlangte aber nur im ostasiatischen Raum nennenswerte Verbreitung und wurde durch den 1991 erstmals veröffentlichten Unicode verdrängt, der langfristig alle existierenden Schriftsysteme abbilden soll.Peter Constable: sil.orgRichard Gillam: Unicode Demystified: A Practical Programmer’s Guide to the Encoding Standard. Boston 2003, ISBN 0-201-70052-2, S. 38 ff.
Spätestens seit Einführung von Unicode stellt sich die Umsetzung eines Zeichens in seine binäre Repräsentation komplizierter dar, da es hierfür mehrere Varianten gibt und ein Zeichen nicht immer mit der gleichen Anzahl Bytes umgesetzt wird.
Da der Austausch von Dateien zwischen unterschiedlichen Rechnersystemen nicht zuletzt durch das Internet wichtiger geworden ist und Textdateien im Vergleich zu Binärdateien auf einfachere Weise eine systemunabhängige Bearbeitung von Dateien ermöglichen, hat das Textformat an Bedeutung gewonnen. Jedoch ist insbesondere auch durch die vielfältige Verwendung von Textdateien der Begriff selbst unzweckmäßiger und unschärfer geworden.Sascha Kersken: IT-Handbuch für Fachinformatiker. Galileo Computing, Bonn 2009, ISBN 978-3-8362-1420-9, S. 779Sascha Kersken: IT-Handbuch für Fachinformatiker. Galileo Computing, Bonn 2009, ISBN 978-3-8362-1420-9, S. 848 f.
Abgrenzung von Binär- und Textdateien Bei vielen Betriebssystemen existieren Konventionen in Bezug auf die Endung von Dateinamen zur Kennzeichnung des Dateityps. Unter Windows und macOS wird dem Namen einer Textdatei meist die Endung .txt angehängt, auch bei anderen Betriebssystemen wie beispielsweise Linux wird diese Dateiendung teilweise verwendet.
Die zur Standardisierung des technischen Formats von E-Mails entworfenen Multipurpose Internet Mail Extensions (MIME) definieren sogenannte Medientypen, die mittlerweile neben dem E-Mail-Verkehr auch in vielen anderen Bereichen zur Kennzeichnung des Dateityps verwendet werden. Der Medientyp text kennzeichnet dabei Text. Die vollständige Typangabe wird noch um einen Subtyp ergänzt, der den Verwendungszweck des Textes spezifiziert. Bei Textdateien, die direkt den „eigentlichen“ Text enthalten, der nicht für eine bestimmte maschinelle Weiterverarbeitung bestimmt ist, lautet die vollständige Typangabe text/plain.
Für den in einer Textdatei enthaltenen Text können keine besonderen Formatierungen wie beispielsweise Hervorhebungen durch Fettdarstellung festgelegt werden. Manche Codierungen erlauben das Stapeln diakritischer Zeichen oder die Darstellung von bidirektionalem Text.
Eine mit einer Textverarbeitung (wie beispielsweise Microsoft Word oder LibreOffice Writer) erstellte Datei ist im Normalfall keine Textdatei,Zumindest enthalten die von Textverarbeitungen verwendeten Dateiformate nicht direkt den eigentlichen Text, da aber aktuelle Textverarbeitungssoftware häufig ein auf XML basierendes Dateiformat verwendet, kann man diese Datei auf anderem Abstraktionsniveau als Textdatei betrachten (siehe XML). selbst wenn ausschließlich Text erfasst wurde, da der Text nur unter Verwendung eines geeigneten Textverarbeitungssystems wieder angezeigt und bearbeitet werden kann. Auch ein im PostScript (.ps), Portable Document Format (PDF, .pdf) oder TeX-DVI (.dvi) vorliegender Text ist keine Textdatei, weil diese codierte Formatinformationen enthält, die auch binär sein können. Ebenso handelt es sich bei Texten, die mittels eines Scanners eingelesen werden, nicht um Textdateien. Diese sind vielmehr Bilddateien, sofern sie nicht nach dem Scan-Vorgang mittels einer Texterkennungs-Software (OCR, ) in eine Textdatei umgewandelt werden.
Bei einer Datenkomprimierung kann bei Textdateien im Regelfall eine erheblich größere Einsparung bei der Speichergröße erzielt werden als bei Binärdateien. Dies liegt daran, dass bei Textdateien die Informationsdichte geringer ist als bei den meisten Binärdateien, was die gängigen Komprimierungsalgorithmen ausnutzen – beispielsweise durch Verwendung der Huffman-Kodierung.Hans Werner Lang: Codierungstheorie – Huffmann-Code. Seite der Hochschule Flensburg, 1997–2022; abgerufen am 22. Oktober 2022
Kennzeichnung des Zeilenendes Grundsätzlich gibt es zwei Möglichkeiten festzulegen, an welcher Stelle eine neue Zeile im Text beginnen soll: die Festlegung einer konstanten Anzahl Zeichen pro Zeile oder die Verwendung definierter spezieller Zeichen zur Markierung des Zeilenendes.
Festlegung einer konstanten Zeilenlänge Die Verwendung einer festen Zeilenlänge hat den Vorteil, dass die Position einer bestimmten Zeile innerhalb der Zeichenfolge (Bytefolge) der Datei ermittelt werden kann, ohne die Datei Zeile für Zeile lesen zu müssen. Allerdings hat sie den Nachteil, dass Zeilen mit kürzerem Inhalt „aufgefüllt“ werden müssen (siehe Padding); dies erfolgt in der Regel mit Leerzeichen. Dadurch beansprucht die Datei mehr Speicherplatz als nötig, wenn die Zeilenlänge nicht ausgeschöpft wird. Eine solche feste Zeilenlänge ist nur auf Großrechner-Systemen gebräuchlich. Die Satzlänge wird dabei vom Dateisystem verwaltet oder ist bei Zugriff auf die Datei anzugeben. Sehr häufig ist die Satzlänge von 80 Zeichen, da diese Anzahl Zeichen bei zeichenorientierten Terminals in einer Zeile dargestellt werden kann, was wiederum auf die historischen Lochkarten zurückgeht.G. D. Brown: zOS/JCL. Job Control Language im Betriebssystem z/OS MVS. München 2004, ISBN 3-486-27397-3, S. 124 ff.
Kennzeichnung mittels Steuerzeichen
Die übliche Definition des Zeichens zur Kennzeichnung des Zeilenendes erinnert an die ursprüngliche direkte Datenausgabe von Textdateien auf Fernschreibern oder Druckern, die in ihrer Bauart einer Schreibmaschine entsprachen. Dort waren die „Befehle“ Wagenrücklauf (, CR) und Zeilenvorschub (, LF) notwendig, um die Fortsetzung der Druckausgabe am Beginn der nächsten Zeile zu veranlassen – bei einem Fernschreiber waren das zwei separate Tasten. Diese beiden Steuerzeichen waren folglich die aussichtsreichsten Kandidaten, um als Markierung des Zeilenendes bei elektronischer Speicherung von Dateien verwendet zu werden. Im Prinzip ist dabei aber ein Zeichen von beiden ausreichend, und diese Wahlmöglichkeit führte dazu, dass die Festlegung uneinheitlich erfolgte, was bis heute eine Komplikation beim systemübergreifenden Austausch von Dateien darstellt:Sascha Kersken: IT-Handbuch für Fachinformatiker. Galileo Computing, Bonn 2009, ISBN 978-3-8362-1420-9, S. 779Sascha Kersken: IT-Handbuch für Fachinformatiker. Galileo Computing, Bonn 2009, ISBN 978-3-8362-1420-9, S. 824f.