Каковы управляющие символы разделителя файла/группы/записи/единицы и их использование?

Unicode определяет несколько управляющих символов из ASCII. http://www.unicode.org/charts/PDF/U0000.pdf

Я вижу, что многие управляющие символы широко используются, но я действительно не вижу, где используются разделители информации. (U+001C~U+001F)

Кто они такие? Какова их история? Для чего они использовались?


person eonil    schedule 01.01.2012    source источник
comment
Разделители полей и записей можно использовать для маршалинга данных таблицы в виде строки. Это немного архаично, но работает.   -  person The Nail    schedule 02.01.2012
comment
Спасибо, что спросили об этом. Теперь я полностью собираюсь использовать разделители единиц измерения вместо табуляции или текста, разделяющего запятую.   -  person bugloaf    schedule 18.06.2017
comment
К вашему сведению, Unicode фактически определяет все 128 символов US-ASCII, а не только некоторые из управляющих символов. Юникод является надмножеством US-ASCII.   -  person Basil Bourque    schedule 10.07.2021


Ответы (3)


Lammert Bies объясняет их использование и историю.

28 – FS – Разделитель файлов Разделитель файлов FS представляет собой интересный управляющий код, поскольку он дает нам представление о том, как компьютерные технологии были организованы в шестидесятые годы. Сейчас мы привыкли к носителям с произвольным доступом, таким как ОЗУ и магнитные диски, но когда был определен стандарт ASCII, большинство данных были последовательными. Я говорю не только о последовательной связи, но и о последовательном запоминающем устройстве, таком как перфокарты, бумажная лента и магнитные ленты. В такой ситуации явно эффективно иметь один управляющий код, сигнализирующий о разделении двух файлов. Для этой цели была определена ФС.

29 – GS – Разделитель групп Хранение данных было одной из основных причин, по которой некоторые управляющие коды попали в определение ASCII. Базы данных в большинстве случаев создаются с таблицами, содержащими записи. Все записи в одной таблице имеют одинаковый тип, но записи разных таблиц могут быть разными. Разделитель групп GS определен для разделения таблиц в последовательной системе хранения данных. Обратите внимание, что слово table в тот момент не использовалось, и люди, работающие с ASCII, называли его группой.

30 – RS – Разделитель записей Внутри группы (или таблицы) записи разделяются RS или разделителем записей.

31 – US – Разделитель единиц Наименьшие элементы данных, которые должны храниться в базе данных, называются единицами в определении ASCII. Сейчас мы бы назвали их полем. Разделитель единиц разделяет эти поля в среде хранения последовательных данных. Большинство современных реализаций баз данных требуют, чтобы поля большинства типов имели фиксированную длину. В записи выделяется достаточно места для хранения максимально возможного члена каждого поля, даже если в большинстве случаев в этом нет необходимости. Это требует большого количества места во многих ситуациях. Управляющий код США позволяет всем полям иметь переменную длину. Если пространство для хранения данных ограничено, как в 60-х годах, это хороший способ сохранить ценное пространство. С другой стороны, последовательное хранилище гораздо менее эффективно, чем RAM и дисковые реализации современных времен. Я не могу себе представить ситуацию, когда современные базы данных SQL работают с данными, хранящимися на бумажной ленте или магнитных катушках...

Разделитель единиц измерения может служить той же цели, что и запятая в файле CSV или табуляция в файле с разделителями табуляции.

person Jonas Elfström    schedule 13.09.2013
comment
Немного удручает узнать, что форматы файлов CSV и TSV основаны на незнании ASCII. - person Dag Høidahl; 14.01.2020
comment
CSV использует запятую, но это печатный символ. Все управляющие коды считаются непечатаемыми и, таким образом, представляют собой двоичные данные, даже если они в основном читаются человеком. Так что есть небольшая разница. - person Chris Uzdavinis; 04.08.2020

Вы имели в виду, что большинство из них обычно не используются в наши дни? Управляющие символы в основном относятся к функциям управления устройством, но некоторые из них могли использоваться в качестве разделителей в текстовых файлах. Для быстрого ознакомления посмотрите мою таблицу элементов управления C0.

Разделители информации использовались для простой группировки данных, но в наши дни для организации данных используются либо двоичные форматы, либо формат XML. Есть еще курьезы, такие как внутреннее использование U + 001E и U + 001F в Microsoft Word для реализации собственной идеи программы «неразрывный дефис» и «необязательный дефис» (в отличие от символов Unicode для аналогичных целей). В основном это показывает, что программы могут использовать управляющие символы странным образом. Проблемы возникают, конечно, если символы включены в текст, передаваемый другим программам.

person Jukka K. Korpela    schedule 01.01.2012
comment
Я извиняюсь за мой плохой английский. Я обновил свой вопрос, чтобы быть более ясным. - person eonil; 11.06.2018

Их функция намеренно неоднозначна. Из стандартного справочника по разработке кодирования символов (Mackenzie, Charles E. Coded-Character Sets: History and Development. Addison-Wesley Longman Publishing Co., Inc., 1980.), глава 26, раздел 1, страница 460:

Четыре дополнительных символа общего назначения, так называемые информационные разделители, были разработаны в 7-битном коде [ASCII] и в EBCDIC. Разделитель файлов, разделитель групп, разделитель записей и разделитель блоков были определены в широком смысле для использования для разделения блоков информации. Но как они должны были использоваться для разделения блоков, какая философия структурирования файлов и записей должна была использоваться, намеренно не уточнялось. Такая подробная спецификация будет предоставлена ​​конкретному приложению обработки данных, в котором будут использоваться разделители. Первоначально была определена иерархическая [sic] философия структурирования информационных блоков. «Файл» был больше, чем «группы», и включал их в себя. «Группа» была больше, чем «записи», и включала их. И «запись» была больше, чем «единицы», и заключала их в себе. В конце концов комитеты по стандартам сделали эту иерархическую [так в оригинале] спецификацию необязательной; то есть разделители не должны использоваться иерархически [так в оригинале], но если бы они были, то иерархия была бы такой, как описано выше. Комитеты по стандартам поняли, что, как и в случае с элементами управления устройствами, неспецифичность разделителей информации может привести к затруднениям при обмене информацией, но такие трудности можно было решить в тех редких случаях, когда они возникали.

Одним из примеров стандарта, в котором используется эта схематическая иерархия, является ныне замененная версия Стандарт ANSI/NIST-ITL для обмена криминалистическими биометрическими изображениями. ITL «Традиционное кодирование» использовали разделители ASCII следующим образом:

␜ Символ-разделитель файлов – разделяет логические записи.

␝ Знак-разделитель групп – разделяет поля.

␞ Символ разделителя записи – разделяет повторяющиеся подполя.

␟ Символ разделителя единиц измерения – разделяет элементы информации.

Такое использование может показаться противоречащим названной цели разделителей, но понимание предполагаемой иерархии кодов символов делает выбор в стандарте ITL более подходящим.

person scruss    schedule 22.06.2021