Текстовий файл
Те́кстовий файл (англ. textfile; застаріле англ. flatfile) — форма подання послідовності символів у комп'ютері, де кожен символ із задіяного набору символів кодується одним байтом чи послідовністю двох, трьох і т. д. байтів.
На відміну від терміна «текстовий формат», що характеризує вміст даних, термін «текстовий файл» стосується файлу та характеризує його як контейнер, який зберігає такі дані.
Опис
ред.Текстовий файл — послідовність символів (переважно друкованих знаків, що належать тому чи іншому набору символів). Ці символи зазвичай згруповані в рядки (англ. lines, rows). У сучасних системах рядки розділяються роздільниками рядків, у минулому ж рядки зберігались у вигляді записів постійної або змінної довжини (перфокарта). Іноді кінець текстового файлу (особливо тоді, коли в файловій системі не зберігається інформація про розмір файлу) також позначається спеціальними знаками (одним або більше), відомими як маркери кінця файлу.
Текстовий файл може містити як форматований, так і неформатований текст.
Текстовим файлам протиставляються двійкові (бінарні) файли, в яких інформація організована за іншими принципами (вона містить інформацію, не прив'язану до набору символів).
Переваги та недоліки
ред.Переваги
ред.- Універсальність — текстовий файл може бути прочитаний (так чи інакше) на будь-якій системі або ОС, особливо, якщо йдеться про однобайтові кодування на кшталт ASCII, які не схильні до проблеми, характерної для інших форматів файлів — для них не важлива різниця в порядку байтів або довжині машинного слова на різних платформах.
- Стійкість — кожне слово та символ у такому файлі самодостатні і, якщо трапиться пошкодження байтів у такому файлі, то зазвичай можна відновити дані за контекстом або продовжити обробку решти вмісту, а в стиснених чи двійкових файлів пошкодження декількох байтів може зробити файл абсолютно невідновним. Багато систем управління версіями розраховані на текстові файли і з двійковими файлами можуть працювати лише як з єдиним цілим.
- Формат текстового файлу вкрай простий і його можна змінювати текстовим редактором — програмою, яка входить в комплект практично будь-якої ОС.
Недоліки
ред.- У великих нестиснутих текстових файлів низька інформаційна ентропія — ці файли займають більше місця, ніж мінімально необхідно. Хоча ця ж надмірність інформації визначає підвищену стійкість до збоїв у каналах передачі даних і при отриманні даних з носіїв, наприклад, з магнітної стрічки.
- Деякі операції з текстовими файлами неефективні. Наприклад, якщо в файлі зустрінеться число, обчислювальна система до початку операцій з ним повинна буде перетворити його в свій внутрішній формат, застосувавши порівняно складну процедуру конвертації числа; щоб перейти на 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), що дозволяє розпізнати формат однозначно. UTF-8 має перевагу зворотної сумісності з ASCII, однак програмна обробка тексту в UTF-8 ускладнюється непостійним розміром символу. Тексти в Юнікоді відрізняються ще більшою надмірністю, ніж 8-бітові[1].
Символи керування
ред.Різні операційні системи дотримуються свого уявлення про символи нового рядка та кінця файлу. В UNIX символ нового рядка — одиничний символ LF (код 0xA), в Mac OS — символ CR (код 0xD), а в DOS і Windows — послідовність двох символів: CR і LF.
Дивись також
ред.Примітки
ред.Джерела
ред.- Freytag, Asmus (18 грудня 2015). FAQ – UTF-8, UTF-16, UTF-32 & BOM. The Unicode Consortium. Процитовано 30 травня 2016.
Yes, UTF-8 can contain a BOM. However, it makes no difference as to the endianness of the byte stream. UTF-8 always has the same byte order. An initial BOM is only used as a signature — an indication that an otherwise unmarked text file is in UTF-8. Note that some recipients of UTF-8 encoded data do not expect a BOM. Where UTF-8 is used transparently in 8-bit environments, the use of a BOM will interfere with any protocol or file format that expects specific ASCII characters at the beginning, such as the use of "#!" of at the beginning of Unix shell scripts.
- 3.403 Text File. IEEE Std 1003.1, 2017 Edition. IEEE Computer Society. Процитовано 1 березня 2019.
Посилання
ред.- Текстові файли
- C2: the Power of Plain Text
- Поняття файлу
- ВВЕДЕННЯ ТА ВИВЕДЕННЯ ДАНИХ З ВИКОРИСТАННЯМ ТЕКСТОВИХ ФАЙЛІВ
Ця стаття не містить посилань на джерела. (жовтень 2014) |