Promemoria: \ r \ n o \ n \ r?

Non riesco a ricordare quelli. Quindi, qual è il modo giusto per terminare correttamente le linee ASCII vecchio stile?

Userei la parola ‘ r etur n ‘ per ricordare, la r prima del n.

Se stai usando C # dovresti usare Environment.NewLine , che di conseguenza a MSDN è:

Una stringa contenente “\ r \ n” per piattaforms non Unix o una stringa che contiene “\ n” per piattaforms Unix.

La nuova linea dipende dal tuo sistema operativo:

 DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal) Unix & Mac OS X: \n, 0A, 10 Macintosh (OS 9): \r, 0D, 13 

Maggiori dettagli qui: https://ccrma.stanford.edu/~craig/utility/flip/

In caso di dubbio, utilizzare qualsiasi visualizzatore / editor esadecimale freeware per vedere come un file codifica la sua nuova riga.

Per me, utilizzo la seguente guida per aiutarmi a ricordare: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n e feed

La sequenza è CR (ritorno a capo) – LF (avanzamento riga). Ricorda le stampanti ad aghi? Esattamente. Quindi, l’ordine corretto è \ r \ n

In qualsiasi linguaggio .NET, Environment.NewLine sarebbe preferibile.

Fai attenzione a farlo manualmente.
In realtà, consiglierei di non farlo affatto.

In realtà stiamo parlando della sequenza di terminazione di linea LTS che è specifica per la piattaforma.

Se apri un file in modalità testo (cioè non binario), i flussi convertiranno “\ n” nel LTS corretto per la tua piattaforma. Quindi riconvertire il LTS in “\ n” quando leggi il file.

Di conseguenza se si stampa “\ r \ n” in un file di Windows si otterrà la sequenza “\ r \ r \ n” nel file fisico (dare un’occhiata con un editor esadecimale).

Naturalmente questo è un vero dolore quando si tratta di trasferire file tra piattaforms.

Ora, se si sta scrivendo su un stream di rete, lo farei manualmente (come la maggior parte dei protocolli di rete chiamano specificatamente). Ma vorrei assicurarmi che il stream non stia facendo alcuna interpretazione (quindi la modalità binaria era appropriata).

\r\n per Windows andrà bene.

Da Wikipedia (puoi leggere quale è corretto per il tuo sistema operativo in quell’articolo):

I sistemi basati su ASCII o un set di caratteri compatibili utilizzano LF (Avanzamento riga, ‘\ n’, 0x0A, 10 in decimale) o CR (Ritorno carrello, ‘\ r’, 0x0D, 13 in decimale) o CR seguito da LF (CR + LF, ‘\ r \ n’, 0x0D0A).

\r\n

Dispari dire che lo ricordo perché è l’opposto della macchina da scrivere che ho usato.
Beh, se era normale non avevo bisogno di ricordarlo … :-)

macchina da scrivere di wikipedia * Immagine da Wikipedia

Nella macchina da scrivere quando si finisce di digitare la riga si utilizza la leva di ritorno a capo , che prima fa ruotare il tamburo, la nuova linea e dopo consente di azionare manualmente il ritorno a capo .

Puoi ascoltare da questo disco di freesound.org il suono dell’alimentazione della carta all’inizio, e intorno a -1: 03 secondi dalla fine, dopo l’avviso di campana per la fine del suono della linea del tamburo che rotola e dopo quello del ritorno a capo.

se stai usando C #, perché non usare Environment.NewLine ? (Suppongo che tu usi alcuni oggetti di scrittore di file … passa semplicemente a Environment.NewLine e gestirà i terminatori corretti.