Nový řádek
Nový řádek (zkratka EOL, anglicky End Of Line) označuje v informatice speciální znak nebo sekvenci znaků, která v počítačovém souboru označuje konec řádku, odřádkování, přičemž další řádek začíná opět u kraje stránky. V programování se tento termín využívá v situaci, kdy konkrétní výsledek operace je závislý na použitém operačním systému nebo nastaveném režimu práce se souborem.
Historie
Znaky CR
(Carriage Return, ASCII kód 0x0D
) a LF
(Line Feed, ASCII kód 0x0A
) pocházejí ještě z období dálnopisné komunikace. Znak LF
byl interpretován jako posun papíru o řádek vzhůru a znak CR
jako návrat vozíku s papírem nebo tiskovou hlavou. Znaky byly interpretované elektromechanicky a proto bylo výhodné mít pro každou relativně samostatnou činnost jeden speciální znak. Kód CR
se vždy posílal jako první, aby se tiskový vozík stihl vrátit, než se začne tisknout nový řádek. Někdy bylo dokonce nutné posílat CR+LF+NUL
(poslední znak nevyvolává žádnou činnost) nebo CR+CR+LF
. V době, kdy se tyto činnosti začaly řešit pomocí software, ztratila oddělená existence těchto znaků smysl. Záleželo pak jen na tvůrcích systémů, jak se s možností jeden z nich vypustit vypořádali.
Reprezentace
Počítačové programy a operační systémy obvykle reprezentují nový řádek pomocí jednoho nebo dvou řídících znaků.
- Systémy používající ASCII reprezentují nový řádek buď kódem
LF
(Line feed,0x0A
) nebo kódemCR
(Carriage return,0x0D
). Některé operační systémy používají dva znaky – sekvenci znakuCR
následovaného znakemLF
(CR+LF
). - Systémy založené na EBCDIC, zejména IBM mainframe systémy zahrnující z/OS (OS/390), i5/OS (OS/400) používají
NEL
(Next Line,0x15
). EBCDIC také obsahuje řídící znakyCR
aLF
, ale číselná reprezentaceLF
se liší od ASCII kódu. - OpenVMS používá souborový systém založený na záznamech. U textových souborů ukládá každý řádek do nového záznamu bez ukončení řídícími znaky. Pokud to aplikace vyžaduje, systém může znaky transparentně doplnit při čtení souboru.
Tabulka kódů
Zkratka | Název | Unicode | ISO-8859-2 | EBCDIC | Open MVS EBCDIC | Označení v C |
---|---|---|---|---|---|---|
CR | carriage return | 000D | 0D | 0D | 0D | "\r" |
LF | line feed | 000A | 0A | 25 | 25 | "\n" |
CR+LF | carriage return and line feed | 000D,000A | 0D,0A | 0D,25 | 0D,25 | "\r\n" |
NEL | next line | 0085 | 85 | 15 | 15 | |
VT | vertical tab | 000B | 0B | 0B | 0B | |
FF | form feed | 000C | 0C | 0C | 0C | |
LS | line separator | 2028 | ||||
PS | paragraph separator | 2029 |