5.2.1. DSV-стиль

5.2.1. DSV-стиль

Аббревиатура DSV расшифровывается как Delimiter-Separated Values (формат с разделителями значений). В первом учебном примере рассматривался файл /еtc/passwd, имеющий DSV-формат с символом двоеточия в качестве разделителя значений. В операционной системе Unix двоеточие является стандартным разделителем для DSV-форматов, в которых значения полей могут содержать пробелы.

Формат файла /etc/passwd (одна запись в строке, поля разделены двоеточиями) является весьма традиционным в Unix и часто используется для данных, представленных в виде таблиц. Другие классические примеры включают в себя файл /etc/group, описывающий группы пользователей, и файл /etc/inittab, который применяется для управления запуском и остановом служебных программ в Unix на различных уровнях выполнения операционной системы.

Ожидается, что организованные в таком стиле файлы данных поддерживают включение в поля данных символов двоеточия, предваренных символами обратной косой черты. В более общем смысле ожидается, что считывающий данные код поддерживает продолжение записи путем исключения знака переключения для символов начала новой строки и позволяет включать данные, содержащие непечатаемые символы, используя знаки переключения в стиле С.

Данный формат является наиболее подходящим в ситуациях, когда данные имеют табличную организацию, снабжены ключами (именами в первом поле), а записи, как правило, короткие (менее 80 символов). Описываемый формат хорошо обрабатывается с помощью традиционных инструментальных средств Unix.

Иногда встречаются и другие разделители полей, такие как символ канала (|) или даже символ ASCII NUL. В практике Unix старой школы привычно было поддерживать символы табуляции — форма представления, которая отражена в установках по умолчанию для утилит cut(1) и paste(1). Однако постепенно данная форма представления изменялась, по мере того как разработчики форматов осознавали множество мелких неудобств, возникающих ввиду того, что символы табуляции и пробелы визуально неразличимы.

DSV-формат для Unix является тем же, чем CSV (формат с разделением значений запятыми) для Microsoft Windows и других систем вне мира Unix. Формат CSV (поля разделены запятыми, для буквального представления запятых используются двойные кавычки, продолжающиеся строки не поддерживаются) в Unix встречается нечасто.

В сущности, Microsoft-версия CSV представляет собой азбучный пример того, как не следует проектировать текстовый файловый формат. Проблемы, связанные с ним, начинаются с ситуации, когда разделяющий символ (в данном случае запятая) находится внутри поля. В Unix в таком случае для буквального представления разделителя перед ним был бы вставлен символ обратной косой черты, а буквальная обратная косая черта представлялась бы при помощи двойной обратной косой черты. Такая конструкция создает единственный частный случай (знак переключения), который необходимо проверять во время синтаксического анализа файла, и требует единственного действия, когда такой символ найден, а именно — интерпретировать следующий символ буквально. Данное действие не только обрабатывает разделяющий символ, но и предоставляет способ обработки знака переключения и символов новой строки без дополнительных ухищрений. С другой стороны, в формате CSV целое поле заключается в двойные кавычки, в случае если оно содержит символ-разделитель. Если поле содержит двойные кавычки, его так же необходимо заключать в двойные кавычки, а отдельные двойные кавычки в поле необходимо повторять дважды, для того чтобы указать, что они не завершают поле.

Существует два негативных результата роста числа частных случаев. Во-первых, возрастает сложность синтаксического анализатора (и его чувствительность к ошибкам). Во-вторых, ввиду того, что правила формата сложны и непредусмотрены, различные реализации расходятся в обработке граничных случаев. Иногда продолжающиеся строки поддерживаются путем начала последнего поля строки с незакрытых двойных кавычек, но только в некоторых продуктах. Microsoft имеет несовместимые версии CSV-файлов между своими собственными приложениями, а в некоторых случаях между различными версиями одного приложения (очевидный пример — программа Excel).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

8.2.2 Стиль описания

Из книги Информационная технология ПРОЦЕСС СОЗДАНИЯ ДОКУМЕНТАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОГРАММНОГО СРЕДСТВА автора Автор неизвестен


Стиль текста

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Стиль текста Шрифтом, высотой и другими характеристиками, которые влияют на вид текста, можно управлять с помощью текстовых стилей. С любым текстом в рисунке связан определенный стиль. При добавлении нового текста используются настройки стиля текста, заданные в данный


Стиль размера

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Стиль размера Мы рассмотрели, как создавать и размещать объекты размеров. Однако это только часть процесса. Из данного раздела вы узнаете, как управлять видом размерных объектов, используя стили размера.Стиль размера – совокупность параметров, хранящихся под


5.2.1. DSV-стиль

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

5.2.1. DSV-стиль Аббревиатура DSV расшифровывается как Delimiter-Separated Values (формат с разделителями значений). В первом учебном примере рассматривался файл /еtc/passwd, имеющий DSV-формат с символом двоеточия в качестве разделителя значений. В операционной системе Unix двоеточие является


18.2. Стиль Unix

Из книги Стандарты программирования на С++. 101 правило и рекомендация автора Александреску Андрей

18.2. Стиль Unix Стиль документации в Unix (и инструментов для подготовки документов) имеет несколько технических и культурных особенностей, которые обособляют его от способа создания документации в других системах. Понимание данных характерных особенностей, во-первых,


18.2.2. Культурный стиль

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

18.2.2. Культурный стиль Большая часть документации по программному обеспечению написана "техническими писателями", стремящимися найти наименьший общий знаменатель незнания — "умное написание для неосведомленных". Документация, которая поставляется с Unix-системами,


Стиль текста

Из книги CSS3 для веб-дизайнеров автора Сидерхолм Дэн

Стиль текста Шрифтом, высотой и другими характеристиками, которые влияют на вид текста, можно управлять с помощью текстовых стилей. С любым текстом на рисунке связан определенный стиль. При добавлении нового текста используются настройки стиля, заданные в данный момент.


18.2. Стиль Unix

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

18.2. Стиль Unix Стиль документации в Unix (и инструментов для подготовки документов) имеет несколько технических и культурных особенностей, которые обособляют его от способа создания документации в других системах. Понимание данных характерных особенностей, во-первых,


18.2.2. Культурный стиль

Из книги автора

18.2.2. Культурный стиль Большая часть документации по программному обеспечению написана "техническими писателями", стремящимися найти наименьший общий знаменатель незнания — "умное написание для неосведомленных". Документация, которая поставляется с Unix-системами,


Стиль проектирования

Из книги автора

Стиль проектирования Дураки игнорируют сложности. Прагматики терпят их. Некоторые ухитряются их избегать. И только гении устраняют их. — Алан Перлис (Alan Perlis) Я также знал, но забыл афоризм Хоара о том, что преждевременная оптимизация — корень всех зол в


Стиль кодирования

Из книги автора

Стиль кодирования Константа для одного является переменной для другого. — Алан Перлис (Alan Perlis) В этом разделе мы перейдем от вопросов проектирования к вопросам, которые появляются в основном при реальном кодировании.Правила и рекомендации из этого раздела применимы


8.3. Стиль программирования

Из книги автора

8.3. Стиль программирования Подчиняться при программировании некоторым стилистическим соглашениям нужно для того, чтобы• уменьшить опасность внесения ошибок в программы и• создавать программы, которые легко читать, понимать, отлаживать и модифицировать.Ниже дается


Добавим стиль

Из книги автора

Добавим стиль Добавим немного CSS, чтобы превратить этот вертикальный список в горизонтальную сетку; поставим обводку толщиной в один пиксель вокруг каждой картинки (также заметим, что фон страницы – легкий серый #eee).ul.gallery li { float: left; margin: 0 10px; padding: 10px; border: 1px solid #ddd; list-style:


Стиль шрифта

Из книги автора

Стиль шрифта Стиль шрифта задается свойством font-style, которое может принимать одно из трех значений: normal, oblique или italic. Эти значения имеют следующий смысл.• normal – определяет шрифт, который классифицируется как Normal. При отображении на экране он выглядит как обычный текст.•


Стиль границы

Из книги автора

Стиль границы Для задания стиля границы используются следующие свойства: border-top-style, border-right-style, border-bottom-style, border-left-style и сокращенная запись – border-style. Свойства стиля границы определяют стиль линии (сплошная, двойная, пунктирная и т. д.), выступающей в качестве границы. Все