Zeilenumbruch
aus Wikipedia, der freien Enzyklopädie
Der Begriff Zeilenumbruch stammt aus dem Schriftsatz und gibt an, an welcher Stelle ein Text von einer Zeile in die nächste übergehen soll.
Inhaltsverzeichnis |
[Bearbeiten] Allgemeines
Auf einer Schreibmaschine etwa wird der Zeilenumbruch explizit durch Betätigen einer Taste oder eines Hebels durchgeführt. Dabei werden zwei Funktionen ausgeführt: Positionierung der Schreibstelle um eine Zeile nach unten und Positionierung der Schreibstelle zum Zeilenanfang (ganz links).
Reine Textdateien auf dem Computer ähneln in ihrer Darstellung einem auf einer Schreibmaschine geschriebenen Text. Bei der Entwicklung des ASCII-Zeichensatzes wurden daher zwei Zeichen reserviert, die genau die Zeilenumbruchfunktion einer Schreibmaschine darstellen:
- Das Steuerzeichen für den Zeilenvorschub (englisch line feed oder newline, abgekürzt LF oder NL) ist als ASCII-Zeichen 10 (hexadezimal 0A) kodiert. Manche Systeme erlauben es, das LF-Zeichen mit der Tastenkombination Strg + J einzugeben.
- Das Steuerzeichen für den Wagenrücklauf (englisch carriage return, CR) ist als ASCII-Zeichen 13 (hexadezimal 0D) kodiert. Manche Systeme erlauben es, das CR Zeichen mit der Tastenkombination Strg + M einzugeben.
Diese Zeichen werden auch Steuerzeichen genannt und sind für den Benutzer im Allgemeinen unsichtbar.
- Es existieren verschiedene Systeme, um den Zeilenumbruch in einer Textdatei explizit zu kodieren:
-
Betriebssystem Zeichensatz Abkürzung Code Hex Code Dezimal Escape-Sequenz Unix, Linux, Mac OS X, AmigaOS, BSD, weitere ASCII LF 0A 10 \n Windows, DOS, OS/2, CP/M CR LF 0D 0A 13 10 \r\n Mac OS bis Version 9, Apple II CR 0D 13 \r AIX OS & OS/390 EBCDIC NEL 15 21
Auf IBM-Großrechnern ist der Zeilenumbruch in den Dateien kein Steuerzeichen. Vielmehr wird die Zeilenlänge im DCB (Recordformat F oder FB) beziehungsweise in einem Längenfeld am Zeilenanfang (Recordformat V oder VB) gespeichert.
Um Dateien zwischen dem Windows- und dem Unix-Format zu konvertieren, existiert für Unix das Tool dos2unix (bzw. unix2dos).
[Bearbeiten] Textverarbeitung
Viele moderne Texteditoren und Textverarbeitungssysteme besitzen automatische Zeilenumbruchsfunktionen, die beim Überschreiten einer bestimmten Zeilenlänge das aktuelle Wort automatisch an den Anfang einer neuen Zeile platzieren. Unterschieden wird hier zwischen einem harten und einem weichen Zeilenumbruch. Der weiche Zeilenumbruch erfolgt nur auf dem Bildschirm, damit der Text komplett angezeigt werden kann, ohne dass der Benutzer horizontal scrollen muss. Der weiche Zeilenumbruch wird jedoch nicht in der Datei gespeichert. Beim harten Zeilenumbruch wird zusätzlich am Ende der Vorzeile ein Zeilenumbruchssymbol eingefügt, so dass der Zeilenumbruch „hart“ in die bearbeitete Datei geschrieben wird. Hierdurch wird der Benutzer von der Notwendigkeit, die Zeilen manuell zu umbrechen, enthoben. Dadurch wird vermieden, dass er den gesamten Absatz neu umbrechen muss, wenn er nur ein Wort zusätzlich einfügt.
[Bearbeiten] Textdarstellung
Ein Text soll oft auf unterschiedlichen Medien oder in unterschiedlicher Schriftgröße dargestellt werden. In diesem Falle ist eine explizite Angabe des Zeilenumbruchs nicht wünschenswert, da dieser bei optimaler Ausnutzung des Mediums nicht feststeht. Computerprogramme zur Textdarstellung ignorieren daher in solchen Situationen vorgegebene Zeilenumbrüche und setzen den Text in Bezug auf die Zeilenlänge des Mediums.
[Bearbeiten] Programmierung
Durch die verschiedenen Konventionen zum Erzeugen eines Zeilenumbruchs treten beim Austausch zwischen unterschiedlichen Systemen Probleme auf. Bekanntes Beispiel ist die Funktion printf()
bzw. fprintf()
aus der Standard C Library zum Schreiben in Dateien. Die Escape-Sequenz \n (LF) steht in C für einen Zeilenumbruch. Beim Schreiben in Dateien wird in C zwischen Textmodus und Binärmodus unterschieden. Bei im Textmodus geöffneten Dateien erfolgt eine Übersetzung von \n in die auf dem jeweiligen System üblichen Steuerzeichen für den Zeilenumbruch. Somit erfolgt in unixartigen Betriebssystem keine Umsetzung, da dort LF bereits für den Zeilenumbruch steht. Dagegen findet unter Windows eine Substitution durch CR LF statt. Die resultierenden Dateien sind folglich nicht identisch. Ist die Datei im Binärmodus geöffnet, erfolgt keine Übersetzung, sondern es wird stets ein LF in die Datei geschrieben.
Bei Java stehen die Escapesequenzen \n und \r zur Verfügung; eine Umwandlung erfolgt nicht, stattdessen können mittels entsprechender Funktionen Neuezeile-Zeichen eingefügt werden. Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl CR, LF als auch CR+LF als Zeilenende.[1] Auch andere Programmiersprachen wie Visual Basic oder Perl stellen ähnliche Funktionalitäten zur Verfügung, um Text-Dateien korrekt zu verarbeiten.
Zahlreiche Netzwerkprotokolle zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz CR+LF für einen Zeilenumbruch. Gleichzeitig empfehlen manche Standards jedoch, auch ein einzelnes LF als Umbruch zu interpretieren. Einige Programme, z. B. MTA, sind strikt und verweigern sogar die Verarbeitung solcher Daten.[2]