Напоминание - rn или nr?

Я просто не помню. Итак, каков правильный способ правильно завершить старомодные линии ASCII?

10 ответов


Я бы использовал слово'return ' чтобы помнить, r предшествует n.


Если вы используете c#, вы должны использовать Environment.NewLine, что соответственно MSDN:

строка, содержащая " \r\n "для платформ, отличных от Unix, или строка, содержащая" \n " для платформ Unix.


новая строка зависит от вашей ОС:

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

подробнее здесь:https://ccrma.stanford.edu / ~craig / утилита / флип/

Если вы сомневаетесь, используйте любой бесплатный hex viewer / editor, чтобы увидеть, как файл кодирует свою новую строку.

для меня я использую следующее руководство, чтобы помочь мне запомнить: 0D0A = \r\n = CR, LF = carriage return, line feed


последовательность CR (возврат каретки) - LF (линия подачи). Помните матричные принтеры? Именно так. Итак-правильный порядок \r \n


в любом .NET langauge,Environment.NewLine будет предпочтительнее.


будьте осторожны с этим вручную.
На самом деле я бы посоветовал не делать все это.

на самом деле мы говорим о последовательности завершения линии LTS, которая специфична для платформы.

Если вы откроете файл в текстовом режиме (т. е. не двоичном), то потоки преобразуют "\n" в правильный LTS для вашей платформы. Затем преобразуйте LTS обратно в "\n " при чтении файла.

в результате, если вы печатаете "\r\n " в windows файл вы получите последовательность "\r\r\n " в физическом файле (посмотрите с помощью шестнадцатеричного редактора).

конечно, это реальная боль, когда дело доходит до передачи файлов между платформами.

теперь, если вы пишете в сетевой поток, я бы сделал это вручную (так как большинство сетевых протоколов вызывают это специально). Но я бы убедился, что поток не делает никакой интерпретации (поэтому двоичный режим был подходящим).


\r\n для Windows все будет в порядке.


с Википедия (вы можете прочитать, что правильно для вашей ОС в этой статье):

системы, основанные на ASCII или совместимый набор символов используйте либо LF (Line feed, '\n', 0x0A, 10 в десятичном формате) или CR (Возврат каретки, '\r', 0x0D, 13 in decimal) индивидуально или CR следовал по LF (CR+LF, '\r\n', 0x0D0A).


\r\n

странно, я помню это, потому что это противоположность пишущей машинки я использовал.
Ну если это нормально я не помню... :-)

typewriter from wikipedia * изображение из Википедии

в пишущей машинке, когда вы закончите цифру строки вы используете рычаг возврата каретки, что перед тем делает барабан,в newline, а после позволяют вручную управлять возврат каретки.

вы можете слушать из этой записи от freesound.org звук подачи бумаги в начале, и примерно в -1: 03 секунд от конца, после звонка, предупреждающего о конце линии звук барабана, который катится и после одного из возврата каретки.


Если вы используете c#, почему бы не использовать Environment.NewLine ? (я предполагаю, что вы используете некоторые объекты file writer... просто передайте это Environment.NewLine и он будет обрабатывать прямо Терминаторы.