Текстові дані

формат файлу

Текстові дані (також Текстовий формат) — спосіб кодування даних в обчислювальній системі у вигляді послідовності друкованих символів. В MIME закодованим таким чином даними відповідає тип text/plain.

Часто текстові дані розуміються в більш вузькому сенсі — як текст на будь-яких мовах (формальних або природних), який може бути прочитаний та зрозумілий людиною.

Текстовому формату протиставляються «двійкові дані», інформація в яких закодована довільним чином, не розраховані на сприйняття людиною.

Для більшої частини комп'ютерного обладнання та програм неважливо, чи є дані текстовими. Однак багато мережевих протоколів розраховані на роботу лише з текстовими даними і не можуть обробляти довільну послідовність байтів. Також, деякі програми обробляють текстові та двійкові дані по-різному, а деякі призначені для обробки саме текстових даних. Програми для створення та редагування текстових даних називаються текстовими редакторами.

Структура ред.

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

Вимога до можливості розуміння вмісту людиною вносить додаткову надмірність в уявлення даних. Наприклад, число 123, для кодування якого достатньо одного 8-бітного байта, в текстовому вигляді кодується декількома цифровими символами — так, в десятковій системі числення для цього потрібно три знака («123»), в двійковій — сім знаків («1111011»), в шістнадцятковій — два («7B»).

Розбиття на рядки ред.

Текстові дані можуть розділятися на рядки. На деяких платформах (переважно, в операційних системах сімейства UNIX) розбиття на рядки кодується одним керуючим знаком з кодом 10 в таблиці ASCII (найменування — Line Feed, LF), на інших (наприклад, в MS-DOS та Microsoft Windows) — парою керуючих знаків з кодами 13 та 10 (Carriage Return і Line Feed, CR/LF). В Mac OS (але не Mac OS X) розбиття кодується одним знаком з кодом 13.

Таке розбиття керуючим знаком або знаками пояснюється роботою друкарських машинок, через які здійснювалося введення в деяких перших комп'ютерах — позиція введення там вказувалася становищем валика з папером, і для повороту валика та переходу до наступного рядка вимагалося натискання однієї або двох клавіш або важелів.

Також, знаки розбивки рядків використовувалися для управління механічними принтерами (ними могли виступати ті ж друкарські машинки, використовувані і для введення) — знак LF викликав прокрутку рулону з папером, а знак CR викликав повернення друкованої каретки (там, де вони були) на початок рядка. Звідси й назва знаків — англ. Line Feed (переклад рядка) та англ. Carriage Return (повернення каретки).

На деяких платформах розбивка на рядки робилася інакше — текст представлявся у вигляді послідовності записів фіксованої довжини, для чого більш короткі рядки доповнювалися потрібною кількістю пробілів. Це відповідало поданню даних на перфокартах, які слугували засобом введення та навіть зберігання даних.

Кодування ред.

Перед початком 1960-х, комп'ютери переважно використовувалися для подрібнення чисел, а не для тексту; пам'ять була дуже дорогою. Комп'ютери часто резервували лише 6 бітів для кожного символу, вміщаючи лише 64 символи — присвоєння кодів для A-Z, a-z, і 0-9 залишає лише 2 коди: далеко не достатньо для нормального використання. Більшість комп'ютерів вирішили не підтримувати малі літери.

Фред Брукс з IBM дуже схилявся до 8-бітних байтів, оскільки коли-небудь люди захочуть обробити текст; він мав рацію. Хоча IBM використовували EBCDIC, більшість текстів відтоді кодувалися в форматі ASCII, використовуючи значення від 0 до 31 для (недрукованих) контрольних символів та значення від 32 до 127 для графічних символів, таких як букви, цифри та розділові знаки. Більшість машин зберігаються символи в 8 бітах рідше, аніж 7, не звертаючи уваги на зайвий біт або використовуючи його як контрольний біт.

Майже повсюдне поширення ASCII дало великий плюс і пішло на користь, але все одно було не в змозі вирішити міжнародні та лінгвістичні проблеми. Знак долара («$») не був таким корисним в Англії, і акцентовані символи, використовувані в іспанських, французьких, німецьких, і багатьох інших мовах були повністю недоступні в ASCII (не кажучи вже про символи, які використовувалися в грецький, російський, і більшість східні мови). Багато людей, компаній, країн визначають зайві символи за необхідні — часто перепризначаючи керуючі символи, або використовуючи значення в діапазоні від 128 до 255. Використання значення понад 128 конфліктів за допомогою 8-го біту як суми, але використання контрольної суми поступово вимерли.

Ці додаткові символи були закодовані по-різному в різних країнах, що робить тексти неможливими для декодування без з'ясування авторських правил. Наприклад, браузер може відображати A замість `, якщо він намагався інтерпретувати один набір символів як інший. Міжнародна організація зі стандартизації (ISO) зрештою розробила декілька кодових сторінок при ISO 8859 для розміщення на різних мовах. Перший з них (ISO 8859-1) також відомий як «Latin-1», і покриває потреби більшості європейських мов (не всіх), що використовують символи на латинській основі (не було достатньо місця, щоб охопити їх усі). Згодом ISO 2022 розробив забезпечення для «перемикання» між різними наборами символів в середині файлу. Багато інших організацій розробили варіації на них, і впродовж багатьох років для Windows і Macintosh комп'ютери використовуються несумісні варіації.

Ситуація з кодуванням текстів ставала дедалі важчою, призводячи до зусиль ISO і Unicode Consortium розробити єдине уніфіковане кодування, яке б було спроможне покрити всі відомі (або, принаймні все останнім часом відомо) мови. Через якийсь час конфлікту, ці зусилля були об'єднані. Unicode останнім часом дозволяє 1,114,112 кодових значень, і привласнює коди охоплюючи майже всі сучасні системи текстописання, багато немовних символів, таких як графічні позначки принтера, математичні символів, і т. д..

Текст вважається текстовими даними незалежно від його кодування. Щоб правильно зрозуміти або обробити його, одержувач повинен знати (або бути в змозі з'ясувати,), яке кодування було використане. Користувачеві не потрібні знання про комп'ютерну архітектуру, яка була використана чи про бінарні структури, що визначаються будь-якою програмою, яка створює дані.

Текстові дані (визначення Unicode) ред.

  • «Текстові дані являють собою основний, змінний зміст тексту.»
  • «Текстові дані становлять собою лиш символьний контент, а не його зовнішній вигляд.»
  • «Можуть бути відображені безліччю способів та вимагають процес рендеринга, щоб зробити видимим зокрема зовнішній вигляд.»
  • "Натомість, розрізнені процеси візуалізації просто потрібні, щоб зробити текст читабельним відповідно до передбаченого читання. "
  • «Цей критерій розбірливості обмежує коло можливих появ.»
  • «Відносини між зовнішністю та змістом текстових даних можна резюмувати таким чином: текстові дані повинен містити достатньо інформації, щоб дозволити тексту бути поданим розбірливо, і більше нічого»
  • «Стандарт Unicode кодує текстові дані.»
  • «Різниця між текстовими даними та іншими формами даних полягає в тому, що в тому ж потоці даних є функція вищого рівня, яка не зазначена в стандартному Unicode.».

Використання ред.

 
Текстовий файл, показаний командою cat у вікні xterm

Мета використання текстових даних сьогодні, перш за все, незалежність від програм, які вимагають їх власного спеціального кодування або форматування, і від комп'ютерних проблем архітектури, таких як порядок байтів, і т. д. Файли текстових даних можна відкрити, читати та редагувати з безлічі загальних текстових редакторів та утилитів. Наприклад, Блокнот (Windows), редагування (DOS), Emacs, VI, Gedit або nano (Unix, Linux), SimpleText (Mac OS), або TextEdit (Mac OS X). Переглянути текстові файли можна також вбудованими командами (type в DOS і Windows) і утилітами (cat в Unix).

Багато інших комп'ютерних програми здатні також обробляти або створювати дані текстового типу. Наприклад, безліч команд в DOS, Windows, Mac OS і Unix і йому споріднених; а також веббраузери (численні браузери, такі як Lynx і Line Mode Browser продукують лише текстові дані для відображення).

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

Текстовий формат часто використовуються для представлення даних, які самі не є чисто текстовими. У цьому разі інші формати даних «надбудовуються» над простим текстом, для чого їх керуючі конструкції виражаються за допомогою друкованих слів і розділових знаків. Це забезпечує зручність роботи з даними на двох рівнях — наприклад, дані HTML і XML можна переглядати та редагувати за показом форматування в режимі WYSIWYG, а можна їх відкрити в звичайному текстовому редакторі і мати доступ до всіх тонкощів мови розмітки. При зберіганні даних в «довічним» вигляді (як це робиться, наприклад, в Microsoft Word ранніх версій) з ними нерідко не можна працювати в інших програмах (через недоступність інформації про структуру формату) або навіть в різних версіях однієї і тієї ж програми.

У більшості мов програмування передбачається використання текстового формату для вихідного коду програм. Крім іншого, це дозволяє застосовувати до вихідних кодів різноманітні утиліти для перетворень, оформлення, пошуку, статистики, аналізу і т. д.

В файлах конфігурації багатьох програм застосовується текстовий формат, навіть якщо там представлені числа та виконавчі перемикачі (так/ні). Це дещо ускладнює програми через необхідність перетворення текстових даних у внутрішній формат і навпаки, але з'являється можливість правити конфігурацію вручну, без використання коштів налаштування самої програми.

Споріднені терміни ред.

Термін відкритий текст (англ. plaintext; виглядає дуже схоже на термін англ. plain text, використовуваний для позначення текстових даних) широко застосовується в криптографії та означає будь-які незашифровані дані, в тому числі і не текстові. Термін «чистий текст» (англ. cleartext) також застосовується в криптографії та означає незашифровані дані, до того ж зрозумілі людині та незахищені від «підслуховування» при передачі.

Див. також ред.