expertenaustausch > sci.* > sci.informatik.misc

Louis Noser (29.06.2013, 14:23)
Grüss Euch

Kann es sein, dass der Hexcode "0A" für Line-Feed
() vom Microsoft-Editor nicht als solcher
verarbeitet wird?

Der Hexdump einer Datei (README von Spamassassin) zeigt auf der zweiten
Zeile an Position 9 ein "0A" an
().

Wenn ich die zugehörige Datei mit dem Editor öffne, zeigt der aber nur
aneinanderfolgende Zeilen an
().

Wenn ich die Datei jedoch mit WordPad öffne, werden die Line-Feeds
angezeigt ().

Wenn ich die Datei (README) in README.txt umbenenne, macht der
Windows-Explorer im Vorschaufenster Line-Feeds
(). Der Editor tut dies
jedoch auch mit dieser umbenannten Datei nicht.

Wie ist dieses Verhalten zu erklären?
Warum interpretiert der Editor ein "0A" nicht als Line-Feed (wie zB.
WordPad)?

Was ich auch nicht verstehe:
Der Windows-Explorer und auch WordPad beginnen die neue Zeile
(Line-Feed) ganz vorne. Wäre hierzu nicht noch ein Carriage Return
nötig; also "0D"?

Vielen Dank.

Grüsse
Louis
Burkart Venzke (29.06.2013, 16:00)
Editoren sind halt verschieden. 0D+0A ist der klassische Zeilenumbruch,
heutzutage reicht z.T. auch OA. (Mag sein, dass 0A alleine mehr aus der
Unix-Welt kommt, aber da bin ich überfragt.)

Gruß, Burkart
Stefan Reuther (29.06.2013, 17:14)
Louis Noser wrote:
> Wie ist dieses Verhalten zu erklären?
> Warum interpretiert der Editor ein "0A" nicht als Line-Feed (wie zB.
> WordPad)?


Weil das unter Windows halt nicht so üblich ist, und weil der Editor
(bei dem es sich um kaum mehr als ein Programmierbeispiel zum Windows
EDIT-Control handelt), im Gegensatz zu Wordpad nicht versucht,
Konventionen anderer Betriebssysteme zu erkennen.

> Was ich auch nicht verstehe:
> Der Windows-Explorer und auch WordPad beginnen die neue Zeile
> (Line-Feed) ganz vorne. Wäre hierzu nicht noch ein Carriage Return
> nötig; also "0D"?


Genau deswegen beginnt der Editor bei einem 0A keine neue Zeile.

Die Steuerzeichen haben nur bei Blattfernschreibern, Terminals usw. ihre
ursprüngliche Bedeutung. Die hat mit der Bedeutung in Dateien nur
indirekt was zu tun, einen Editor, der bei LF einen Zeilenvorschub ohne
Wagenrücklauf macht, oder bei CR die Zeile überschreibt wirst du
wahrscheinlich nicht finden.

In den Urzeiten der EDV wurde eben eine Abbildung von Terminal-
Steuerzeichen auf Dateiformate überlegt. Digital Research für CP/M (und
später Microsoft für MS-DOS) haben halt festgelegt: eine neue Zeile
beginnt in einer Textdatei mit den gleichen Steuerzeichen, die ein
Terminal benötigt: CR+LF. Für Unix wurde hingegen festgelegt, dass als
Zeilentrenner ein LF reicht und die Übersetzung in Terminalsteuerzeichen
vom Terminaltreiber erledigt wird. Anderswo wurden noch wildere
Konstruktionen erfunden, WIMRE gab es auch sowas wie "eine Zeile besteht
aus einem Längenbyte plus den Textzeichen".

Und Wordpad erkennt nun eben die Unix- und die Windows-Konvention,
Notepad nicht.

Ich hab ansonsten sogar mal gelernt, dass für Blattfernschreiber
CR+CR+LF zu verwenden ist, damit die Zeit für den Wagenrücklauf reicht.

Stefan (yrvpugra Gebyytrehpu evrpuraq)
Christian Schweingruber (02.07.2013, 10:33)
Hallo Louise

Am 29.06.2013 14:23, schrieb Louis Noser:
> Grüss Euch
> Kann es sein, dass der Hexcode "0A" für Line-Feed () vom Microsoft-Editor nicht als solcher
> verarbeitet wird? ....
> Was ich auch nicht verstehe:
> Der Windows-Explorer und auch WordPad beginnen die neue Zeile (Line-Feed) ganz vorne. Wäre hierzu nicht noch ein
> Carriage Return nötig; also "0D"?


Die ganzen Hintergründe, die tief in die IT Urzeit zurückreicht werden recht gut auf
erläutert...

viele Grüsse
Chrigu
Ähnliche Themen