Eu simplesmente não consigo me lembrar disso. Então, qual é a maneira correta de finalizar corretamente as linhas ASCII à moda antiga?
Eu simplesmente não consigo me lembrar disso. Então, qual é a maneira correta de finalizar corretamente as linhas ASCII à moda antiga?
Respostas:
Eu usaria a palavra ' r etur n ' para lembrar, or vem antes do n.
\n\r
e \r\n
é o mesmo, eles não fazem o mesmo efeito? você pode dizer a diferença?
Se você estiver usando C #, deverá usar o Environment.NewLine
que, de acordo com o MSDN, é:
Uma sequência contendo "\ r \ n" para plataformas não-Unix ou uma sequência contendo "\ n" para plataformas Unix.
Environment.NewLine
bem. No entanto, se você estiver escrevendo coisas em um formato bem definido, o formato também poderá definir a nova linha. Por exemplo, o protocolo HTTP afirma que você deve usar \r\n
como terminador de linha para cabeçalhos, etc, independentemente da plataforma.
A nova linha depende do seu sistema operacional:
DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13
Mais detalhes aqui: https://ccrma.stanford.edu/~craig/utility/flip/
Em caso de dúvida, use qualquer visualizador / editor hexadecimal de freeware para ver como um arquivo codifica sua nova linha.
Para mim, uso o seguinte guia para me lembrar: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n e feed
0D0A
de cor, mas ainda confunde o \r
e \n
.
A sequência é CR (retorno de carro) - LF (avanço de linha). Lembra das impressoras matriciais? Exatamente. Então - a ordem correta é \ r \ n
Em qualquer idioma .NET, Environment.NewLine
seria preferível.
Tenha cuidado ao fazer isso manualmente.
Na verdade, eu recomendaria não fazer isso.
Na realidade, estamos falando sobre a sequência de terminação de linha LTS, específica da plataforma.
Se você abrir um arquivo no modo de texto (ou seja, não binário), os fluxos converterão o "\ n" no LTS correto para sua plataforma. Em seguida, converta o LTS novamente em "\ n" quando você ler o arquivo.
Como resultado, se você imprimir "\ r \ n" em um arquivo do Windows, obterá a sequência "\ r \ r \ n" no arquivo físico (consulte um editor hexadecimal).
Claro que isso é uma verdadeira dor quando se trata de transferir arquivos entre plataformas.
Agora, se você estiver gravando em um fluxo de rede, eu faria isso manualmente (como a maioria dos protocolos de rede chamam isso especificamente). Mas eu teria certeza de que o fluxo não está fazendo nenhuma interpretação (então o modo binário era apropriado).
\r\n
para Windows funcionará perfeitamente.
\n
funciona bem no Windows, incluindo a versão mais recente do Notepad.
Da Wikipedia (você pode ler o que é correto para o seu sistema operacional nesse artigo):
Os sistemas baseados em ASCII ou em um conjunto de caracteres compatível usam LF (avanço de linha, '\ n', 0x0A, 10 em decimal) ou CR (retorno de carro, '\ r', 0x0D, 13 em decimal) individualmente ou CR seguido por LF (CR + LF, '\ r \ n', 0x0D0A).
\r\n
É estranho dizer que me lembro porque é o oposto da máquina de escrever que usei.
Bem, se fosse normal, não precisava me lembrar disso ...:-)
Na máquina de escrever, quando você termina de digitar a linha, usa a alavanca de retorno de carro , que antes faz rolar o tambor, a nova linha e depois permite operar manualmente o retorno de carro .
Você pode ouvir deste registro em freesound.org o som do papel sendo alimentado no início e em torno de -1: 03 segundos após o final, após o aviso da campainha para o final do som da linha do tambor que rola e depois o do retorno de carro.