Non riesco proprio a ricordare quelli. Quindi, qual è il modo giusto per terminare correttamente le vecchie linee ASCII?
Non riesco proprio a ricordare quelli. Quindi, qual è il modo giusto per terminare correttamente le vecchie linee ASCII?
Risposte:
Userei la parola ' r etur n ' per ricordare, la r viene prima della n.
\n\r
ed \r\n
è lo stesso, non fanno lo stesso effetto? puoi dire la differenza?
Se stai usando C # dovresti usare Environment.NewLine
, che secondo MSDN è:
Una stringa contenente "\ r \ n" per piattaforme non Unix o una stringa contenente "\ n" per piattaforme Unix.
Environment.NewLine
va bene. Tuttavia, se stai scrivendo cose in un formato ben definito, anche il formato può definire la nuova riga. Ad esempio, il protocollo HTTP afferma che è necessario utilizzare \r\n
come terminatore di linea per intestazioni ecc., Indipendentemente dalla piattaforma.
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 dubbi, 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
0D0A
a memoria, ma confonde ancora \r
e \n
.
La sequenza è CR (ritorno a capo) - LF (avanzamento riga). Ricordi le stampanti ad aghi? Esattamente. Quindi - l'ordine corretto è \ r \ n
In qualsiasi lingua .NET, Environment.NewLine
sarebbe preferibile.
Fai attenzione a farlo manualmente.
In effetti consiglierei di non farlo affatto.
In realtà stiamo parlando della sequenza di terminazione di linea LTS specifica per la piattaforma.
Se apri un file in modalità testo (cioè non binario), i flussi convertiranno "\ n" nell'LTS corretto per la tua piattaforma. Quindi riconvertire l'LTS in "\ n" quando si legge il file.
Di conseguenza se si stampa "\ r \ n" su un file Windows, si otterrà la sequenza "\ r \ r \ n" nel file fisico (consultare un editor esadecimale).
Naturalmente questo è un vero dolore quando si tratta di trasferire file tra piattaforme.
Ora, se stai scrivendo su un flusso di rete, lo farei manualmente (poiché la maggior parte dei protocolli di rete lo chiama in modo specifico). Ma mi assicurerei che il flusso non stia interpretando (quindi la modalità binaria era appropriata).
\r\n
per Windows andrà bene.
\n
funziona bene anche su Windows, inclusa l'ultima versione di Notepad.
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 a capo, '\ r', 0x0D, 13 in decimale) singolarmente o CR seguito da LF (CR + LF, '\ r \ n', 0x0D0A).
\r\n
Strano a dirlo, lo ricordo perché è l'opposto della macchina da scrivere che ho usato.
Beh, se era normale non avevo bisogno di ricordarmelo ...:-)
Nella macchina da scrivere quando finisci di digitare la linea usi la leva di ritorno del carrello , che prima fa rotolare il tamburo, la nuova riga e dopo ti consente di azionare manualmente il ritorno del carrello .
Puoi ascoltare da questo disco da freesound.org il suono dell'alimentazione della carta all'inizio, e circa -1: 03 secondi dalla fine, dopo l'avvertimento della campana per la fine del suono della linea del tamburo che rotola e dopo quello del ritorno a capo.