Я просто не можу їх згадати. Отже, який правильний спосіб правильно припинити старомодні лінії ASCII?
Я просто не можу їх згадати. Отже, який правильний спосіб правильно припинити старомодні лінії ASCII?
Відповіді:
Я б використовував слово ' r etur n ', щоб пам’ятати, r приходить перед n.
\n\r
і \r\n
такий же, хіба вони не роблять однакового ефекту? ви можете сказати різницю?
Якщо ви використовуєте C #, ви повинні використовувати Environment.NewLine
, що відповідно до MSDN це:
Рядок, що містить "\ r \ n" для платформ, які не є Unix, або рядок, що містить "\ n" для платформ Unix.
Environment.NewLine
це добре. Однак якщо ви пишете речі у чітко визначеному форматі, формат може визначати і новий рядок. Наприклад, протокол HTTP повідомляє, що ви повинні використовувати \r\n
як термінальний рядок для заголовків тощо, незалежно від платформи.
Новий рядок залежить від вашої ОС:
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/utility/flip/
Якщо ви сумніваєтеся, використовуйте будь-який безкоштовний шестигранний переглядач / редактор, щоб побачити, як файл кодує його новий рядок.
Для мене я використовую наступний посібник, щоб допомогти мені запам'ятати: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n e feed
0D0A
напам’ять, але все ще плутає \r
і \n
.
Послідовність CR (Carriage Return) - LF (Подача рядків). Пам'ятаєте матричні принтери? Саме так. Отже - правильний порядок - \ r \ n
У будь-якому .NET-мові Environment.NewLine
було б кращим.
Будьте обережні, роблячи це вручну.
Насправді я б радив взагалі цього не робити.
Насправді мова йде про послідовність завершення лінії LTS, яка є специфічною для платформи.
Якщо ви відкриєте файл у текстовому режимі (тобто не двійковому), то потоки перетворять "\ n" у правильний LTS для вашої платформи. Потім перетворіть LTS назад у "\ n", коли ви прочитаєте файл.
У результаті, якщо ви надрукуєте "\ r \ n" у файл Windows, ви отримаєте послідовність "\ r \ r \ n" у фізичному файлі (ознайомтесь із шестигранним редактором).
Звичайно, це справжній біль, коли справа стосується передачі файлів між платформами.
Тепер, якщо ви пишете в мережевий потік, я б це зробив вручну (як це називає більшість мережевих протоколів). Але я би переконався, що потік не робить жодної інтерпретації (тому бінарний режим був відповідним).
\r\n
для Windows буде добре.
\n
відмінно працює і у Windows, включаючи останню версію Notepad.
З Вікіпедії (ви можете прочитати, що правильно для вашої ОС у цій статті):
Системи, засновані на ASCII або сумісному наборі символів, використовують або LF (канальний рядок, '\ n', 0x0A, 10 у десятковій частині), або CR (повернення каретки, '\ r', 0x0D, 13 у десятковій частині) окремо, або CR з наступним LF (CR + LF, '\ r \ n', 0x0D0A).
\r\n
Як не дивно сказати, я пам’ятаю це, тому що це протилежне машинці, яку я використовував.
Добре, якщо це було нормально, мені не потрібно було це пам'ятати ...:-)
У друкарській машинці, коли закінчите розраховувати рядок, ви використовуєте важіль повернення каретки , перед тим, як зробити рулон барабана, нову лінію та після того, як ви можете вручну керувати поверненням каретки .
Ви можете слухати з цього запису з сайту freesound.org звук подачі паперу на початку та приблизно через 1: 03 секунди від кінця, після попередження про дзвінок про закінчення рядка звучання барабана, який котиться і після повернення вагона.