Zeilenumbruch: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Auf einer [[Schreibmaschine]] wird der Zeilenumbruch explizit durch Betätigen einer Taste oder eines Hebels durchgeführt. Dabei werden zwei Funktionen ausgeführt:
Auf einer [[Schreibmaschine]] wird der Zeilenumbruch explizit durch Betätigen einer Taste oder eines Hebels durchgeführt.  
* Dabei werden zwei Funktionen ausgeführt:
* [[Wagenrücklauf]] – Positionierung der Schreibstelle zum Zeilenanfang (ganz links).
* [[Wagenrücklauf]] – Positionierung der Schreibstelle zum Zeilenanfang (ganz links).
* [[Zeilenvorschub]] – Positionierung der Schreibstelle um eine Zeile nach unten.
* [[Zeilenvorschub]] – Positionierung der Schreibstelle um eine Zeile nach unten.


Bei der Einführung der [[Fernschreiber]] wurden verschiedene [[Steuerzeichen]] (Codierungen elektrischer Signale) eingeführt, um die Zeilenumbruchfunktion einer Schreibmaschine darzustellen. Diese sind dann auch, durch ihre Verwendung als erste [[Ausgabegerät]]e der [[Informatik]], von der [[Fernmeldetechnik]] in die elektronische Datenverarbeitung übernommen worden.
Bei der Einführung der [[Fernschreiber]] wurden verschiedene [[Steuerzeichen]] (Codierungen elektrischer Signale) eingeführt, um die Zeilenumbruchfunktion einer Schreibmaschine darzustellen.  
* Diese sind dann auch, durch ihre Verwendung als erste [[Ausgabegerät]]e der [[Informatik]], von der [[Fernmeldetechnik]] in die elektronische Datenverarbeitung übernommen worden.


Reine [[Textdatei]]en auf dem Computer ähneln in ihrer Darstellung am [[Bildschirm]] anfangs einem auf einer Schreibmaschine geschriebenen Text, die Steuerzeichen sind für den Benutzer im Allgemeinen unsichtbar. Mit dem [[Scrollbalken]] geht der Zusammenhang zwischen Bildschirmbreite und Zeilenlänge verloren, mit den [[Proportionalschrift]]en der zwischen Zeichenanzahl und Zeilenlänge. Ausführliche Funktionen haben die Zeichen für den Zeilenumbruch dann erst in der [[Textauszeichnung]] ([[Rich-Text-Format]] und ähnliches) bekommen.
Reine [[Textdatei]]en auf dem Computer ähneln in ihrer Darstellung am [[Bildschirm]] anfangs einem auf einer Schreibmaschine geschriebenen Text, die Steuerzeichen sind für den Benutzer im Allgemeinen unsichtbar.  
* Mit dem [[Scrollbalken]] geht der Zusammenhang zwischen Bildschirmbreite und Zeilenlänge verloren, mit den [[Proportionalschrift]]en der zwischen Zeichenanzahl und Zeilenlänge.  
* Ausführliche Funktionen haben die Zeichen für den Zeilenumbruch dann erst in der [[Textauszeichnung]] ([[Rich-Text-Format]] und ähnliches) bekommen.


Weil die Steuerzeichen noch in den Anfangsphasen der Computertechnik spezifiziert wurden, sind sie mit ihrer Funktionsänderung bis heute eine der großen Inkompatibilitäten zwischen verschiedenen Betriebssystem- und Anwendungssoftwaresystemen.
Weil die Steuerzeichen noch in den Anfangsphasen der Computertechnik spezifiziert wurden, sind sie mit ihrer Funktionsänderung bis heute eine der großen Inkompatibilitäten zwischen verschiedenen Betriebssystem- und Anwendungssoftwaresystemen.
Zeile 42: Zeile 46:


Bei der Entwicklung des [[American Standard Code for Information Interchange|ASCII]]-Zeichensatzes wurden zwei Zeichen reserviert:
Bei der Entwicklung des [[American Standard Code for Information Interchange|ASCII]]-Zeichensatzes wurden zwei Zeichen reserviert:
* Das Steuerzeichen für den [[Zeilenvorschub]] ({{enS|line feed}}, kurz <code>LF</code>) ist als ASCII-Zeichen 10 (hexadezimal <code>0A</code>) kodiert. Manche Systeme erlauben es, das <code>LF</code>-Zeichen mit der [[Tastenkombination]] {{Taste|[[Strg]]}}+{{Taste|J}} einzugeben.
* Das Steuerzeichen für den [[Zeilenvorschub]] ({{enS|line feed}}, kurz <code>LF</code>) ist als ASCII-Zeichen 10 (hexadezimal <code>0A</code>) kodiert.  
* Das Steuerzeichen für den [[Wagenrücklauf]] ({{enS|carriage return}}, kurz <code>CR</code>) ist als ASCII-Zeichen 13 (hexadezimal <code>0D</code>) kodiert. Manche Systeme erlauben es, das <code>CR</code>-Zeichen mit der Tastenkombination {{Taste|Strg}}+{{Taste|M}} einzugeben.
* Manche Systeme erlauben es, das <code>LF</code>-Zeichen mit der [[Tastenkombination]] {{Taste|[[Strg]]}}+{{Taste|J}} einzugeben.
* Das Steuerzeichen für den [[Wagenrücklauf]] ({{enS|carriage return}}, kurz <code>CR</code>) ist als ASCII-Zeichen 13 (hexadezimal <code>0D</code>) kodiert.  
* Manche Systeme erlauben es, das <code>CR</code>-Zeichen mit der Tastenkombination {{Taste|Strg}}+{{Taste|M}} einzugeben.


Es existieren verschiedene Standards, um den Zeilenumbruch in einer Textdatei explizit zu kodieren:
Es existieren verschiedene Standards, um den Zeilenumbruch in einer Textdatei explizit zu kodieren:
Zeile 83: Zeile 89:
|}
|}


Auf [[International Business Machines|IBM]]-[[Großrechner]]n 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.
Auf [[International Business Machines|IBM]]-[[Großrechner]]n 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.


Bei Mac OS X finden sich aufgrund der weitgehenden Kompatibilität zum Vorgänger Mac OS noch einige Textformate, die <code>CR</code> statt <code>LF</code> als Zeilentrenner verwenden. Viele moderne Mac OS X-Programme können daher mit beiden Formaten in Textdateien umgehen. Bei der Verwendung von falsch deklarierten Dateien, die <code>CR LF</code> verwenden, führt dies bei einigen Programmen dazu, dass Zeilenumbrüche doppelt erzeugt werden. Lediglich Dateien, die aus der [[Berkeley Software Distribution|BSD]]- bzw. [[Unix]]-Welt stammen, sind meist zwingend an <code>LF</code> als Zeilentrenner gebunden.
Bei Mac OS X finden sich aufgrund der weitgehenden Kompatibilität zum Vorgänger Mac OS noch einige Textformate, die <code>CR</code> statt <code>LF</code> als Zeilentrenner verwenden.  
* Viele moderne Mac OS X-Programme können daher mit beiden Formaten in Textdateien umgehen.  
* Bei der Verwendung von falsch deklarierten Dateien, die <code>CR LF</code> verwenden, führt dies bei einigen Programmen dazu, dass Zeilenumbrüche doppelt erzeugt werden.  
* Lediglich Dateien, die aus der [[Berkeley Software Distribution|BSD]]- bzw. [[Unix]]-Welt stammen, sind meist zwingend an <code>LF</code> als Zeilentrenner gebunden.


=== Unicode: weitere Zeichen, die Zeilenumbruch markieren ===
=== Unicode: weitere Zeichen, die Zeilenumbruch markieren ===
Zeile 106: Zeile 116:
Durch die verschiedenen Konventionen zum Kodieren der Formen des Zeilenumbruchs auf Computersystemen, die bei der Übernahme der Fernschreib-/Schreibmaschinen-Konventionen in die elektronische Textverarbeitung entstanden, treten beim Austausch zwischen unterschiedlichen Systemen Probleme auf.
Durch die verschiedenen Konventionen zum Kodieren der Formen des Zeilenumbruchs auf Computersystemen, die bei der Übernahme der Fernschreib-/Schreibmaschinen-Konventionen in die elektronische Textverarbeitung entstanden, treten beim Austausch zwischen unterschiedlichen Systemen Probleme auf.


Bekanntes Beispiel ist die Funktion <code>printf()</code> bzw. <code>fprintf()</code> aus der ''[[Standard C Library]]'' zum Schreiben in Dateien. Die Escape-Sequenz <code>\n</code> (<code>LF</code>) steht in [[C (Programmiersprache)|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 <code>\n</code> in die auf dem jeweiligen System üblichen Steuerzeichen für den Zeilenumbruch. Somit erfolgt in unixartigen Betriebssystemen keine Umsetzung, da dort <code>LF</code> bereits für den Zeilenumbruch steht. Dagegen findet unter Windows eine Substitution durch <code style="white-space: nowrap">CR LF</code> statt. Die resultierenden Dateien sind folglich nicht identisch. Ist die Datei im Binärmodus geöffnet, erfolgt keine Übersetzung, sondern es wird stets ein <code>LF</code> in die Datei geschrieben.
Bekanntes Beispiel ist die Funktion <code>printf()</code> bzw. <code>fprintf()</code> aus der ''[[Standard C Library]]'' zum Schreiben in Dateien.  
* Die Escape-Sequenz <code>\n</code> (<code>LF</code>) steht in [[C (Programmiersprache)|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 <code>\n</code> in die auf dem jeweiligen System üblichen Steuerzeichen für den Zeilenumbruch.  
* Somit erfolgt in unixartigen Betriebssystemen keine Umsetzung, da dort <code>LF</code> bereits für den Zeilenumbruch steht.  
* Dagegen findet unter Windows eine Substitution durch <code style="white-space: nowrap">CR LF</code> statt.  
* Die resultierenden Dateien sind folglich nicht identisch.  
* Ist die Datei im Binärmodus geöffnet, erfolgt keine Übersetzung, sondern es wird stets ein <code>LF</code> in die Datei geschrieben.


Bei [[Java (Programmiersprache)|Java]] stehen die Zeichenkonstanten (Escape-Sequenzen) <code>\n</code> und <code>\r</code> zur Verfügung; eine Umwandlung erfolgt nicht, stattdessen können mittels gesonderter Funktionen die plattformabhängigen Zeichen für den Zeilenumbruch eingefügt werden. Die neuere <code>printf</code>-Funktion kennt den Formatierungscode <code>%n</code>, um den plattformspezifischen Zeilentrenner auszugeben. Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl <code>CR</code>, <code>LF</code> als auch <code>CR LF</code> als Zeilenende für <code>readLine()</code>.<ref>[http://docs.oracle.com/javase/7/docs/api//java/io/BufferedReader.html#readLine() java.io.BufferedReader] Java-Dokumentation bei [[Oracle]]</ref> Wird eine [[EBCDIC]]-[[Codepage]] wie <code>Cp500</code> verwendet, so wird das Byte EBCDIC <code>NEL</code> (0x15) auf <code>LF</code> (U+000A) und nicht etwa <code>NEL</code> (U+0085) abgebildet.
Bei [[Java (Programmiersprache)|Java]] stehen die Zeichenkonstanten (Escape-Sequenzen) <code>\n</code> und <code>\r</code> zur Verfügung; eine Umwandlung erfolgt nicht, stattdessen können mittels gesonderter Funktionen die plattformabhängigen Zeichen für den Zeilenumbruch eingefügt werden.  
* Die neuere <code>printf</code>-Funktion kennt den Formatierungscode <code>%n</code>, um den plattformspezifischen Zeilentrenner auszugeben.  
* Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl <code>CR</code>, <code>LF</code> als auch <code>CR LF</code> als Zeilenende für <code>readLine()</code>.<ref>[http://docs.oracle.com/javase/7/docs/api//java/io/BufferedReader.html#readLine() java.io.BufferedReader] Java-Dokumentation bei [[Oracle]]</ref> Wird eine [[EBCDIC]]-[[Codepage]] wie <code>Cp500</code> verwendet, so wird das Byte EBCDIC <code>NEL</code> (0x15) auf <code>LF</code> (U+000A) und nicht etwa <code>NEL</code> (U+0085) abgebildet.


Auch andere Programmiersprachen wie [[Visual Basic .NET|Visual Basic]] oder [[Perl (Programmiersprache)|Perl]] stellen ähnliche Funktionalitäten zur Verfügung, um Textdateien korrekt zu verarbeiten.
Auch andere Programmiersprachen wie [[Visual Basic .NET|Visual Basic]] oder [[Perl (Programmiersprache)|Perl]] stellen ähnliche Funktionalitäten zur Verfügung, um Textdateien korrekt zu verarbeiten.


Zahlreiche [[Netzwerkprotokoll]]e zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz <code>CR LF</code> für einen Zeilenumbruch. Einige Programme, z. B. ''[[Mail Transfer Agent]]s,'' sind strikt und verweigern sogar die Verarbeitung von Daten mit alleinstehenden LFs („Bare LF“).<ref>[http://cr.yp.to/docs/smtplf.html Bare LFs in SMTP]</ref> Andere Protokolle empfehlen jedoch, auch ein einzelnes <code>LF</code> als (ggf. weichen) Umbruch zu interpretieren. In der W3C-Recommendation zu XML ist in Abschnitt 2.11<ref>[http://www.w3.org/TR/xml11/#sec-line-ends Extensible Markup Language (XML) 1.1 (Second Edition), W3C Recommendation 16 August 2006]</ref> definiert, wie Zeilenumbrüche zu handhaben sind. In der Version 1.1 sind hier U+0085 und U+2028 hinzugekommen.
Zahlreiche [[Netzwerkprotokoll]]e zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz <code>CR LF</code> für einen Zeilenumbruch.  
* Einige Programme, z. B. ''[[Mail Transfer Agent]]s,'' sind strikt und verweigern sogar die Verarbeitung von Daten mit alleinstehenden LFs („Bare LF“).<ref>[http://cr.yp.to/docs/smtplf.html Bare LFs in SMTP]</ref> Andere Protokolle empfehlen jedoch, auch ein einzelnes <code>LF</code> als (ggf.  
* weichen) Umbruch zu interpretieren.  
* In der W3C-Recommendation zu XML ist in Abschnitt 2.11<ref>[http://www.w3.org/TR/xml11/#sec-line-ends Extensible Markup Language (XML) 1.1 (Second Edition), W3C Recommendation 16 August 2006]</ref> definiert, wie Zeilenumbrüche zu handhaben sind.  
* In der Version 1.1 sind hier U+0085 und U+2028 hinzugekommen.


=== Kennzeichnung nicht angegebener oder unerwünschter Zeilenumbrüche ===
=== Kennzeichnung nicht angegebener oder unerwünschter Zeilenumbrüche ===
Zeile 119: Zeile 142:
Damit ([[Virgel]]) werden etwa die Reime markiert, deutlichere Absätze wie [[Strophe]]n kann man dann mit «//» setzen.
Damit ([[Virgel]]) werden etwa die Reime markiert, deutlichere Absätze wie [[Strophe]]n kann man dann mit «//» setzen.


Umgekehrt kann es in der elektronischen Textverarbeitung notwendig sein, einen entstehenden Zeilenumbruch als unerwünscht zu markieren. Das entsteht z. B. in Programmiersprachen, in denen der Umbruch ein Steuerzeichen ist, aber etwa auch bei der Angabe von [[Uniform Resource Locator|URLs]] (Webadressen). Hier verwendet man etwa «[[Underline|_]]» ''(underline),'' «[[Backslash|\]]» ''(backslash),'' je nachdem, was im jeweiligen Format nicht als Steuerzeichen anderweitig besetzt ist, oder auch das Zeichen wie «[[↩]]» (U+21A9).
Umgekehrt kann es in der elektronischen Textverarbeitung notwendig sein, einen entstehenden Zeilenumbruch als unerwünscht zu markieren.  
* Das entsteht z. B. in Programmiersprachen, in denen der Umbruch ein Steuerzeichen ist, aber etwa auch bei der Angabe von [[Uniform Resource Locator|URLs]] (Webadressen).  
* Hier verwendet man etwa «[[Underline|_]]» ''(underline),'' «[[Backslash|\]]» ''(backslash),'' je nachdem, was im jeweiligen Format nicht als Steuerzeichen anderweitig besetzt ist, oder auch das Zeichen wie «[[↩]]» (U+21A9).
Das Zeichen «↩» ist hier eine printtypografische Anweisung „Umbruch ignorieren“ – bei [[Copy and paste]] der Textstelle etwa in die Adresszeile eines Browsers wird der Teil nach dem Zeilenumbruch von manchen Programmen ignoriert, andere fügen den Weblink wieder zusammen, dann müsste das Zeichen «↩» manuell entfernt werden – im rein elektronischen Medium ist das Zeichen eher störend.
Das Zeichen «↩» ist hier eine printtypografische Anweisung „Umbruch ignorieren“ – bei [[Copy and paste]] der Textstelle etwa in die Adresszeile eines Browsers wird der Teil nach dem Zeilenumbruch von manchen Programmen ignoriert, andere fügen den Weblink wieder zusammen, dann müsste das Zeichen «↩» manuell entfernt werden – im rein elektronischen Medium ist das Zeichen eher störend.


Zeile 165: Zeile 190:


[[Kategorie:Entwurf]]
[[Kategorie:Entwurf]]
[[Kategorie:Steuerzeichen]]
[[Kategorie:Steuerzeichen]]
[[Kategorie:Typografie]]
[[Kategorie:Typografie]]
[[Kategorie:IT-Grundlagen]]
[[Kategorie:IT-Grundlagen]]
[[Kategorie:IT-Grundlagen]]

Version vom 29. Dezember 2022, 12:23 Uhr

Ein Zeilenumbruch ist in Textdateien die Markierung für das Ende einer Zeile

Beschreibung

Auf einer Schreibmaschine wird der Zeilenumbruch explizit durch Betätigen einer Taste oder eines Hebels durchgeführt.

  • Dabei werden zwei Funktionen ausgeführt:
  • Wagenrücklauf – Positionierung der Schreibstelle zum Zeilenanfang (ganz links).
  • Zeilenvorschub – Positionierung der Schreibstelle um eine Zeile nach unten.

Bei der Einführung der Fernschreiber wurden verschiedene Steuerzeichen (Codierungen elektrischer Signale) eingeführt, um die Zeilenumbruchfunktion einer Schreibmaschine darzustellen.

Reine Textdateien auf dem Computer ähneln in ihrer Darstellung am Bildschirm anfangs einem auf einer Schreibmaschine geschriebenen Text, die Steuerzeichen sind für den Benutzer im Allgemeinen unsichtbar.

Weil die Steuerzeichen noch in den Anfangsphasen der Computertechnik spezifiziert wurden, sind sie mit ihrer Funktionsänderung bis heute eine der großen Inkompatibilitäten zwischen verschiedenen Betriebssystem- und Anwendungssoftwaresystemen.

Beschreibung
Zeilenwechsel, Bindestriche, Leerzeichen
  • verhindern
  • erzwingen
mit
  • HTML
  • CSS
Zeilenumbruch an ungünstiger Stelle
  • Der Umbruch geschieht auch häufig vor Bindestrichen.
  • Der Rest des Wortes rutscht somit in die nächste Zeile.
  • Der Absatz sorgt für Verwirrung beim Lesen.
Manueller HTML Zeilenumbrüche oder Leerzeilen
  • Von der Grundidee her ist das Setzen manueller HTML Zeilenumbrüche oder Leerzeilen
  • vor allem, wenn es um moderne Webseiten angeht
  • etwas, das man eher vergessen sollte.
  • Denn schließlich möchte man ja, dass sich der Text je nach Breite des Displays anpasst.

Es gibt allerdings Situationen, in denen ein manuelles Verhindern oder Erzwingen der Zeilenumbrüche durchaus Sinn machen kann

  • zusammenhängenden Titeln,
  • markanten Überschriften,
  • Trennungen von Namen oder
  • Wörtern mit Bindestrichen.

Codierung des Zeilenumbruchs

ASCII und EBCDIC

Mit gedit unter Linux erstellte Textdatei in einem Hex-Editor.
Außer den Textobjekten sieht man nur die als 0A codierten Zeilenvorschübe.

Bei der Entwicklung des ASCII-Zeichensatzes wurden zwei Zeichen reserviert:

  • Das Steuerzeichen für den Zeilenvorschub (, kurz LF) ist als ASCII-Zeichen 10 (hexadezimal 0A) kodiert.
  • Manche Systeme erlauben es, das LF-Zeichen mit der Tastenkombination {{#if:trim|Strg}}+{{#if:trim|J}} einzugeben.
  • Das Steuerzeichen für den Wagenrücklauf (, kurz CR) ist als ASCII-Zeichen 13 (hexadezimal 0D) kodiert.
  • Manche Systeme erlauben es, das CR-Zeichen mit der Tastenkombination {{#if:trim|Strg}}+{{#if:trim|M}} einzugeben.

Es existieren verschiedene Standards, um den Zeilenumbruch in einer Textdatei explizit zu kodieren:

Betriebssystem Zeichensatz Abkürzung Code Hex Code Dezimal Escape-Sequenz
Unix, Linux, Android, macOS, AmigaOS, BSD, weitere ASCII LF 0A 10 \n
Windows, DOS, OS/2, CP/M, TOS (Atari) CR LF 0D 0A 13 10 \r\n
Mac OS Classic, Apple II, C64 CR 0D 13 \r
AIX OS & OS/390 EBCDIC NL 15 21 \025

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.

Bei Mac OS X finden sich aufgrund der weitgehenden Kompatibilität zum Vorgänger Mac OS noch einige Textformate, die CR statt LF als Zeilentrenner verwenden.

  • Viele moderne Mac OS X-Programme können daher mit beiden Formaten in Textdateien umgehen.
  • Bei der Verwendung von falsch deklarierten Dateien, die CR LF verwenden, führt dies bei einigen Programmen dazu, dass Zeilenumbrüche doppelt erzeugt werden.
  • Lediglich Dateien, die aus der BSD- bzw. Unix-Welt stammen, sind meist zwingend an LF als Zeilentrenner gebunden.

Unicode: weitere Zeichen, die Zeilenumbruch markieren

Für Unicode-Texte fordert der Unicode-Standard im Unicode-Zeilenumbruch-Algorithmus von Software, die unicodekonform sein soll, dass neben den oben genannten und in unicodekonformen Zeichenfolgen CR, LF und CR LF folgende weitere Zeichen als Zeilenumbrüche erkannt werden:

Abkürzung englische Bezeichnung deutsche Bezeichnung Codepoint
FF Form Feed Seitenvorschub (mit zwangsläufigem Umbruch der Zeile) U+000C
NEL Next Line Nächste Zeile U+0085
LS Line Separator Zeilentrenner U+2028
PS Paragraph Separator Absatztrenner U+2029

Programmierung: Codierung des Umbruchs

Durch die verschiedenen Konventionen zum Kodieren der Formen des Zeilenumbruchs auf Computersystemen, die bei der Übernahme der Fernschreib-/Schreibmaschinen-Konventionen in die elektronische Textverarbeitung entstanden, 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 Betriebssystemen 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 Zeichenkonstanten (Escape-Sequenzen) \n und \r zur Verfügung; eine Umwandlung erfolgt nicht, stattdessen können mittels gesonderter Funktionen die plattformabhängigen Zeichen für den Zeilenumbruch eingefügt werden.

  • Die neuere printf-Funktion kennt den Formatierungscode %n, um den plattformspezifischen Zeilentrenner auszugeben.
  • Beim Einlesen ist die Java-Bibliothek tolerant und akzeptiert sowohl CR, LF als auch CR LF als Zeilenende für readLine().[1] Wird eine EBCDIC-Codepage wie Cp500 verwendet, so wird das Byte EBCDIC NEL (0x15) auf LF (U+000A) und nicht etwa NEL (U+0085) abgebildet.

Auch andere Programmiersprachen wie Visual Basic oder Perl stellen ähnliche Funktionalitäten zur Verfügung, um Textdateien korrekt zu verarbeiten.

Zahlreiche Netzwerkprotokolle zur Übertragung von Text, z. B. HTTP, SMTP oder FTP, definieren die Sequenz CR LF für einen Zeilenumbruch.

  • Einige Programme, z. B. Mail Transfer Agents, sind strikt und verweigern sogar die Verarbeitung von Daten mit alleinstehenden LFs („Bare LF“).[2] Andere Protokolle empfehlen jedoch, auch ein einzelnes LF als (ggf.
  • weichen) Umbruch zu interpretieren.
  • In der W3C-Recommendation zu XML ist in Abschnitt 2.11[3] definiert, wie Zeilenumbrüche zu handhaben sind.
  • In der Version 1.1 sind hier U+0085 und U+2028 hinzugekommen.

Kennzeichnung nicht angegebener oder unerwünschter Zeilenumbrüche

Ein typografischer Umbruch, der unterdrückt wird, wird etwa in Poesiezitaten bei Zeilenzitation verwendet: Vorlage:Zitat Damit (Virgel) werden etwa die Reime markiert, deutlichere Absätze wie Strophen kann man dann mit «//» setzen.

Umgekehrt kann es in der elektronischen Textverarbeitung notwendig sein, einen entstehenden Zeilenumbruch als unerwünscht zu markieren.

  • Das entsteht z. B. in Programmiersprachen, in denen der Umbruch ein Steuerzeichen ist, aber etwa auch bei der Angabe von URLs (Webadressen).
  • Hier verwendet man etwa «_» (underline), «\» (backslash), je nachdem, was im jeweiligen Format nicht als Steuerzeichen anderweitig besetzt ist, oder auch das Zeichen wie «» (U+21A9).

Das Zeichen «↩» ist hier eine printtypografische Anweisung „Umbruch ignorieren“ – bei Copy and paste der Textstelle etwa in die Adresszeile eines Browsers wird der Teil nach dem Zeilenumbruch von manchen Programmen ignoriert, andere fügen den Weblink wieder zusammen, dann müsste das Zeichen «↩» manuell entfernt werden – im rein elektronischen Medium ist das Zeichen eher störend.

Beim Korrekturlesen im Druckwesen verwendet man die Korrekturzeichen «» für fehlenden und «» für unerwünschten Absatz (‚Zeilenumbruch einfügen‘, bzw. ‚Zeilenumbruch entfernen‘, also ‚Absatz anhängen‘):[4]

Text mit Korrekturzeichen

Konfiguration

Dateien

Anwendungen

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Einzelnachweise

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5