Переклад рядка
Переклад рядка. або розрив рядка - продовження друку тексту з нового рядка, тобто з лівого краю на рядок нижче, або вже на наступній сторінці. На комп'ютерах це здійснюється клавішею введення Enter.
Роздільником рядків. позначає місце перекладу рядка, в текстових даних служить один або пара керуючих символів. а в розміченому тексті також - певний тег (в HTML - тег
. від англ. break - «розрив»). Роздільник рядків також називають просто перекладом рядка, коли немає потреби їх розрізняти.
Разом з іншими діями новий рядок виконується також перед наступним абзацом або сторінкою.
Переклад рядка скорочують як NEL (від англ. Next line - «з наступного рядка, перехід на наступний рядок», або newline - «з нового рядка, перехід на новий рядок»).
Повернення каретки (англ. Carriage return. CR) - керуючий символ ASCII (0x 0D. 1310. '\ R'), при виведенні якого курсор переміщається до лівого краю поля, не переходячи на інший рядок. Цей керуючий символ вводиться клавішею «Enter». Будучи записаний у файлі. окремо розглядається як новий рядок тільки в системах Macintosh.
Подача рядки (від англ. Line feed. LF - «подача [паперу] на рядок») - керуючий символ ASCII (0x0A. 10 в десятковій системі числення, '\ n'), при виведенні якого курсор переміщається на наступний рядок. У разі принтера це означає зрушення папера вгору, в разі дисплея - зсув курсору вниз, якщо ще залишилося місце, і прокручування тексту вгору, якщо курсор знаходився на нижньому рядку. Чи повертається при цьому курсор до лівого краю чи ні, залежить від реалізації.
Таким чином, висновок послідовності CR + LF в семантиці терміналу гарантує дію «створення нового рядка».
Термінали (і їх емулятори) можуть також проводити різні перетворення символів (наприклад, LF → CR + LF. CR → CR + LF) при введенні і виведенні тексту.
Жорсткий повернення. іноді апаратний повернення - роздільник рядків, поставлений користувачем. У машинному поданні тексту жорсткий повернення явно виражений, зазвичай керуючими символами або тегом.
М'який повернення - новий рядок, виконаний текстовим процесором в тому місці тексту, яке їм вибрано. М'який повернення розділяє рядки тексту в його візуальному (видимому користувачем) поданні, але може бути ніяк не виражений в машинному поданні цього тексту.
Системи, засновані на ASCII або сумісному наборі символів, використовують або LF (переклад рядка, 0x 0A), або CR (повернення каретки, 0x0D) окремо, або послідовність CR + LF; см. нижче історичну причину для угоди CR + LF. Ці назви засновані на командах принтера: новий рядок означає, що один рядок на папері повинна бути перенесена при друку, а повернення каретки означає, що каретка друкувального пристрою повинна повернутися до початку поточного рядка.
За стандартом, будь-який сумісний з Юнікод додаток повинен сприймати як новий рядок кожен з нижченаведених символів:
Послідовність CR + LF (U + 000D U + 000A) належить сприймати як один новий рядок, а не два [1].
Немає загальноприйнятих скорочень українських термінів. ВК (Повернення Каретки) збігається за написанням з скороченням від англ. BreaK ( «розрив [рядки]», - то ж, що новий рядок), а ПС не розрізняє Подачу Рядки і Переклад Рядки.
різниця уявлень
Відсутність єдиного загальноприйнятого уявлення перекладу рядка в різних операційних системах ускладнює обмін текстовими даними між ними. Юнікод намагається примирити цю різницю, зрівнюючи CR. LF і CR + LF. однак вступає в протиріччя з спадкоємною їм ASCII при трактуванні послідовності LF + CR. НЕ предварённой CR. згідно ASCII це один новий рядок, а згідно Юнікод - два.
Переклад рядка при введенні з клавіатури представлений одноманітно у всіх системах - символом CR. і в системах з іншим поданням перекладу рядка текстові дані доводиться перекодувати в необхідний формат.
Останній рядок
Навіть в сучасних виданнях ОС UNIX і Linux відсутність перекладу рядка в кінці системних конфігураційних файлів призводить до того, що останній рядок не враховується [2]. а здавалося б правильно складений файл не працює, представляючись головоломкою для користувача, що не попереджений про цю самобутньої особливості. Див. Розділ Кінець рядка.
На перфокартних системах зберігання даних один рядок записувалася на одну перфокарту, тому рядок була заданої довжини, за кількістю колонок (зазвичай 80). Рядки коротше домагалися пробілами, а рядки довші обрізалися. Роздільник рядків не було, а неявний новий рядок передбачався через кожні 80 символів. Деякі ранні мейнфреймовие операційні системи перейняли це для зберігання тексту в файлах, де вже не було природного обмеження на довжину рядка.
На механічних друкарських машинках був важіль, який повертав каретку до лівого краю сторінки і прокручував вал, спонукаючи папір вгору на рядок. На телетайпу і більш пізніх алфавітно-цифрових друкувальних пристроях (АЦПУ) замість каретки була головка, в лазерних принтерах вона перестала бути матеріальною, але в терміні повернення каретки все це продовжували називати кареткою, щоб його не змінювати. На телетайпу повернення каретки і подачу рядки розділили, звідки традиція подання перекладу рядка як CR + LF перейшла і до текстових файлів.
кінець рядка
Телетайпи спочатку друкували на рулонної папері, і повідомлення починали і закінчували перекладом рядка, щоб кожне починалося з нового рядка напевно. Звідси пішов звичай включати роздільник повідомлень до складу самого повідомлення.
На комп'ютерах з'явився діалоговий режим роботи, коли по черзі друкувалися вводяться керуючі повідомлення користувача і відповідні програмні повідомлення. Користувач після повідомлення завжди перекладав рядок, так як одночасно це означало команду до виконання, а ось програми після свого повідомлення рядок іноді не переводили, не дивлячись на розпорядження. Пристрій виведення з самого початку не було пристосоване до того, щоб термінал міг стежити за перекладами рядків, і реалізувати це було важко, тому щоб введення користувача починався з нового рядка напевно, керуючий діалогом термінал після програмного повідомлення перекладав рядок теж. Поміщати новий рядок пропонувалося і в кінці текстового файлу.
Турбота про поділ повідомлень лягла на термінал, і думати про це перестали, а новий рядок в кінці тексту переосмислити як кінець останнього рядка, разом з чим як кінці рядків переосмислити і взагалі все переклади рядків, чому сприяло зручність роботи з регулярно завершеними рядками з точки зору програмування, схоже нуль-терминировать рядках. Так звичай включати роздільник повідомлень до складу повідомлення перейшов в звичай включати роздільник рядків до складу рядка.
Зайва рядок в кінці файлу зазвичай не представляє клопоту, тому новий рядок до сих пір називають кінцем рядка, а роздільник рядків - символом кінця рядка (EOL, англ. End of line).
Перетікання роздільник в завершувач і назад буває не тільки у перекладу рядка. Так, крапка з комою в мові Сі команди завершує, а в Паскалі їх розділяє. У письмовій мові після кількох пропозицій точку майже завжди ставлять, а після одиночного - частіше немає. Це коливання добре видно в списках. де поодинокі пропозиції іноді починають з великої літери, а іноді - з маленької.
Режим автопереноса вмикається і вимикається користувачем вручну, визначити це програмно було важко, тобто, позбувшись від ручного перенесення, отримали іншу ручну операцію. Стало зрозуміло, що не обійтися без більш автоматизує рознесення роздільник рядків і роздільник абзаців, тобто для них знадобилися два різних символу.
Щоб не піклуватися про сумісність з вже існуючим в ASCII роздільником рядків / абзаців, розробники не стали використовувати символи ASCII для роздільник рядків і роздільник абзаців. В HTML використовували теги
і
. в Юникоде - символи U + 2028 і U + 2029. відповідно. У Вікіпедії абзаци можна розділяти порожніми рядками, відображеними при цьому повноцінним інтервалом.