448 Stimmen

Zur Erinnerung - \r\n ou \n\r ?

Ich kann mich einfach nicht mehr daran erinnern. Wie kann man also altmodische ASCII-Zeilen richtig beenden?

6voto

Brad Punkte 151817

\r\n für Windows ist genau das Richtige.

5voto

Martin York Punkte 245363

Seien Sie vorsichtig, wenn Sie dies manuell tun.
Ich würde sogar raten pas dies überhaupt zu tun.

In Wirklichkeit handelt es sich um die plattformspezifische Leitungsabschlusssequenz LTS.

Wenn Sie eine Datei im Textmodus (also nicht binär) öffnen, konvertieren die Streams die " \n "in den richtigen LTS für Ihre Plattform um. Konvertieren Sie dann den LTS zurück in " \n ", wenn Sie die Datei lesen.

Wenn Sie also " \r\n " zu einer Windows-Datei hinzufügen, erhalten Sie die Sequenz " \r\r\n " in der physischen Datei (sehen Sie mit einem Hex-Editor nach).

Das ist natürlich sehr mühsam, wenn es um die Übertragung von Dateien zwischen Plattformen geht.

Wenn Sie nun in einen Netzwerkstrom schreiben, würde ich dies manuell tun (da die meisten Netzwerkprotokolle dies ausdrücklich fordern). Aber ich würde sicherstellen, dass der Stream keine Interpretation vornimmt (also wäre der Binärmodus angemessen).

5voto

Hastur Punkte 2350

<code>\r\n</code>

Seltsam, dass ich mich daran erinnere, denn sie ist das Gegenteil der Schreibmaschine Ich habe.
Nun, wenn es normal war, brauchte ich mich nicht daran zu erinnern... :-)

typewriter from wikipedia * Bild aus Wikipedia

In der Schreibmaschine, wenn Sie die Zeile zu Ende schreiben, benutzen Sie die Wagenrücklaufhebel Das macht den Trommelwirbel vor, der Zeilenumbruch und danach können Sie das Gerät manuell bedienen. Wagenrücklauf .

Sie können zuhören von dieser Platte von freesound.org das Geräusch des Papiereinzugs am Anfang und etwa -1:03 Sekunden vor dem Ende, nach der Glocke, die vor dem Ende der Zeile warnt, nach dem Geräusch der rollenden Trommel und nach dem der Rückkehr des Wagens.

4voto

bhamby Punkte 14694

Von Wikipedia (Sie können in diesem Artikel nachlesen, welches für Ihr Betriebssystem das richtige ist):

Systeme, die auf ASCII oder einem kompatiblen Zeichensatz verwenden entweder LF (Line Vorschub, ' \n ', 0x0A, 10 in dezimal) oder CR (Wagenrücklauf, ' \r ', 0x0D, 13 in dezimal) einzeln, oder CR gefolgt von gefolgt von LF (CR+LF, ' \r\n ', 0x0D0A).

2voto

NirMH Punkte 4435

Wenn Sie C# verwenden, warum nicht mit Environment.NewLine ? (ich nehme an, dass Sie einige Datei-Writer-Objekte verwenden... übergeben Sie ihm einfach die Environment.NewLine und es werden die richtigen Terminatoren verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X