Піктограммное опис текстового файлу з CSV -даними

Текстовий файл - комп'ютерний файл, що містить текстові дані, як правило, організовані в вигляді рядків.

Текстовим файлам протиставляються двійкові файли, в яких містяться дані, не розраховані на інтерпретацію в якості тексту (наприклад, файли, що зберігають закодовані звук або зображення).

На відміну від терміна " текстовий формат ", що характеризує вміст даних, термін" текстовий файл "відноситься до файлу і характеризує його як контейнер, що зберігає такі дані.


1. Опис

Текстовий файл представляє із себе послідовність символів (в основному друкованих знаків, що належать тому чи іншому набору символів). Це символи зазвичай згруповані в рядки ( англ. lines, rows ). У сучасних системах рядки розділяються роздільниками рядків, у минулому ж застосовувалося зберігання рядків у вигляді записів постійної або змінної довжини (див.: Перфокарта). Іноді кінець текстового файлу (особливо якщо у файловій системі не зберігається інформація про розмір файлу) також відзначається одним або більше спеціальними знаками, відомими як маркери кінця файлу.

Текстовий файл може містити як форматований, так і неформатований текст.


1.1. Переваги та недоліки

Переваги:

  • Універсальність - текстовий файл може бути прочитаний (так чи інакше) на будь-якій системі або ОС, особливо якщо мова йде про однобайтних кодуваннях зразок ASCII, які не схильні до проблеми, характерної для інших форматів файлів - для них не важлива різниця в порядку байтів або довжині машинного слова на різних платформах.
  • Стійкість - кожне слово і символ у такому файлі самодостатні і, якщо трапиться пошкодження байтів в такому файлі, то зазвичай легше відновити дані і продовжити обробку решти вмісту, в той час як у стислих або двійкових файлів пошкодженні декількох байтів може призвести до неможливості відновити весь вміст файлу. Багато системи управління версіями розраховані на текстові файли та з двійковими файлами можуть працювати тільки як з єдиним цілим.
  • Формат текстового файлу вкрай простий і його можна змінювати текстовим редактором - програмою, яка входить в комплект практично будь ОС.

Недоліки:

  • У великих нестислих текстових файлів низька інформаційна ентропія - ці файли займають більше місця, ніж мінімально необхідно. Хоча ця надмірність і визначає підвищену стійкість до збоїв в каналах передачі даних і при отриманні даних з носіїв, наприклад, з магнітної стрічки.
  • Деякі операції з текстовими файлами неефективні. Наприклад, якщо у файлі зустрінеться число, обчислювальна система до початку операцій з ним повинна буде перевести його в свій внутрішній формат, застосувавши порівняно складну процедуру конвертації числа; щоб перейти на 1000-й рядок, потрібно вважати 999 рядків, що йдуть до неї; складно замінити один рядок іншого і т. д. Тому при роботі з великими обсягами даних текстові файли застосовують тільки як проміжний формат, що забезпечує інтероперабельність.

1.2. Формати, засновані на текстових файлах

В силу своєї простоти текстові файли нерідко використовуються для зберігання службової інформації (наприклад, логів). Текстовий формат служить основою для багатьох більш спеціалізованих форматів (наприклад, . Ini, SGML, HTML, XML, TeX, вихідних текстів мов програмування).

У текстовому файлі текст може зберігатися як в неформатований, так і форматувати або розміченому вигляді (наприклад, Rich Text Format, HTML), де до кожного символу може бути застосоване форматування (шрифт, накреслення, розмір і т. п.).


1.3. Розширення імен файлів

В DOS і Windows для файлів з ​​неформатований текст зазвичай використовується розширення . txt. Тим не менш, текстовими можуть бути файли з будь-яким іншим розширенням або без оного. Наприклад, вихідні коди програм зазвичай зберігаються у файлах з розширеннями, відповідними мови програмування, на якому написані програми (. bas,. pas,. c).

Форматований тест (текст з розміткою) зазвичай зберігається у файлах з розширенням, відповідним форматом або мови розмітки -. rtf,. htm,. html.


2. Кодування

2.1. 8-бітний текст

Історично для кодування текстових файлів застосовувалися 7 - бітний набір символів ASCII, а також 8-бітові EBCDIC і різні розширення ASCII. У 8-бітних кодових сторінках загальноприйнято використовувати в першій половині кодової таблиці символи, відповідні ASCII.

Перевагою 8-бітного представлення тексту є програмна простота і незалежність від проблеми порядку байтів або довжини машинного слова на різних платформах. Недолік - велика кількість різних стандартів, що може призводити до несумісності.


2.2. Unicode в текстових файлах

Застосування Unicode в текстових файлах хоча в основному вирішує "проблему кодувань" і стандартизує вживання керуючих символів, але створює свої проблеми. У більшості сучасних систем неподільною одиницею інформації в потоці даних є байт (8 біт), яких для кодування одного символу з Юнікоду потрібно декілька. В якості вирішення застосовуються несумісні між собою системи UTF-8 та дві версії UTF-16 (UTF-16LE та UTF-16BE з протилежною порядком байтів). Іноді в початок файлу додають спеціальний символ-маркер (U + FEFF [1]), що дозволяє розпізнати формат однозначно. UTF-8 має перевагу зворотної сумісності з ASCII, однак програмна обробка тексту в UTF-8 ускладнюється непостійним розміром символу. Також, тексти в Юникоде відрізняються ще більшою надмірністю, ніж 8-бітові.


2.3. Керуючі символи

Різні операційні системи дотримуються свого представлення перекладу рядка і кінця файлу. В UNIX переклад рядка складається з одного символу LF (код 10), в Mac OS - з символу CR (код 13), а в DOS і Windows переклад рядка кодується послідовністю двох символів: CR і LF.

Крім названих, в текстових файлах застосовуються такі символи, як табуляція (код 9) і переклад сторінки (код 12).

Примітки

  1. Стандарт Unicode, ч. 2. - www.unicode.org/versions/Unicode5.0.0/ch02.pdf