Nový řádek

řídicí znak označující konec řádky textu

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 editovat

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 editovat

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ódem CR (Carriage return, 0x0D). Některé operační systémy používají dva znaky – sekvenci znaku CR následovaného znakem LF (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í znaky CR a LF, ale číselná reprezentace LF 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ů editovat

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

Související články editovat