Піктограммное опис текстового файлу з CSV -Даний
Текстовий файл - комп'ютерний файл. що містить текстові дані. Текстових файлів протиставляються двійкові (бінарні) файли. в яких містяться дані, які не розраховані на інтерпретацію як текстових (наприклад, файли, що зберігають текст в закодованому або стислому вигляді, або зберігають не текст, а звук, зображення або інші дані).
На відміну від терміна «текстові дані» ( «текстовий формат даних»), що характеризує вміст даних, термін «текстовий файл» відноситься до файлу і характеризує його як контейнер, який зберігає такі дані.
Текстовий файл містить послідовність символів (в основному друкованих знаків. Належать тому або іншому набору символів). Ці символи зазвичай згруповані в рядки (англ. Lines, rows). У сучасних системах рядки поділяються роздільниками рядків. в минулому ж застосовувалося зберігання рядків у вигляді записів постійної або змінної довжини (см. Перфокарта). Іноді кінець текстового файлу (особливо якщо в файлової системі не зберігається інформація про розмір файлу) також відзначається одним або більше спеціальними знаками, відомими як маркери кінця файлу.
Переваги і недоліки
- У великих незжатих текстових файлів низька інформаційна ентропія - ці файли займають більше місця, ніж мінімально необхідно. Хоча ця надмірність і визначає підвищену стійкість до збоїв в каналах передачі даних і при отриманні даних з носіїв. наприклад, з магнітної стрічки.
- Деякі операції з текстовими файлами неефективні. Наприклад, якщо в файлі зустрінеться число, обчислювальна система до початку операцій з ним повинна буде перевести його в свій внутрішній формат, застосувавши порівняно складну процедуру конвертації числа; щоб перейти на 1000-й рядок, потрібно вважати 999 рядків, що йдуть до неї; складно замінити один рядок інший і т. д. Тому при роботі з великими обсягами даних текстові файли застосовують тільки як проміжний формат, що забезпечує інтероперабельність.
Формати, засновані на текстових файлах
В силу своєї простоти текстові файли нерідко використовуються для зберігання службової інформації (наприклад, балок): так як операція додавання в кінець текстового файлу нових даних не вимагає скільки-небудь значних обчислювальних ресурсів незалежно від уже наявного обсягу файлу і виду додаються текстових даних, ведення текстових лог-файлів зазвичай відбувається ефективно і непомітно для користувача і для інших додатків (аж до вичерпання дискового простору).
Текстовий формат служить основою для багатьох більш спеціалізованих форматів (наприклад, .ini. SGML. HTML. XML. TeX. Вихідних текстів мов програмування). У деяких з таких форматів певні поєднання символів можуть використовуватися як засоби розмітки тексту. В такому випадку файл може зберігати форматований текст, в якому для символів додатково може бути заданий шрифт, накреслення, розмір і т. П. (Наприклад, Rich Text Format. HTML).
Розширення імен файлів
В DOS і Windows для файлів з неформатований текстом зазвичай використовується розширення .txt. Проте, текстовими можуть бути файли з будь-яким іншим розширенням або без оного. Наприклад, вихідні коди програм зазвичай зберігаються в файлах з розширеннями, відповідними мови програмування. на якому написані програми (.bas. .pas. .c).
Форматований текст (текст з розміткою) зазвичай зберігається в файлах з розширенням, відповідним формату або мови розмітки - .rtf. .htm. .html.
8-бітний текст
Історично для кодування текстових файлів застосовувалися 7-бітний набір символів ASCII. а також 8-бітові EBCDIC і різні розширення ASCII. У 8-бітних кодових сторінках загальноприйнято використовувати в першій половині кодової таблиці символи, відповідні ASCII.
Перевагою 8-бітного представлення тексту є програмна простота і незалежність від проблеми порядку байтів або довжини машинного слова на різних платформах. Недолік - велика кількість різних стандартів, що може призводити до несумісності.
Unicode в текстових файлах
Застосування Unicode в текстових файлах хоча в основному вирішує «проблему кодувань» і стандартизує вживання керуючих символів, але створює свої проблеми. У більшості сучасних систем неподільної одиницею інформації в потоці даних є байт (8 біт). яких для кодування одного символу з Юникода потрібно кілька. В якості вирішення застосовуються несумісні між собою системи UTF-8 і дві версії UTF-16 (UTF-16LE і UTF-16BE з протилежним порядком байтів). Іноді в початок файлу додають спеціальний символ-маркер (U + FEFF [1]), що дозволяє розпізнати формат однозначно. UTF-8 має перевагу зворотної сумісності з ASCII, однак програмна обробка тексту в UTF-8 ускладнюється непостійним розміром символу. Також тексти в Юникоде відрізняються ще більшою надмірністю. ніж 8-бітові.
керуючі символи
Різні операційні системи дотримуються свого подання перекладу рядка і кінця файлу. В UNIX новий рядок складається з одного символу LF (код 0xA), в Mac OS (але не OS X) - з символу CR (код 0xD), а в DOS і Windows переклад рядка кодується послідовністю двох символів: CR і LF.
Такий різнобій продиктований принципами роботи друкарських машинок: щоб перейти на новий рядок, треба повернути каретку в початок рядка (carriage return), а потім провернути барабан на один рядок (line feed). При друку на принтері той і інший символ міг стояти осторонь (наприклад, щоб виділити рядок, надруковані її двічі, або прокрутити барабан на кілька рядків), але в текстових файлах в цьому немає потреби.