Значения, разделенные разделителями - Delimiter-separated values

Форматы, которые используют значения, разделенные разделителями (также DSV)[1]:113 хранить двумерные массивы данных, разделяя значения в каждой строке определенными разделитель символы. Наиболее база данных и электронная таблица программы могут читать или сохранять данные в формате с разделителями. Благодаря широкой поддержке файлы DSV можно использовать в обмен данными среди многих приложений.

А текстовый файл с разделителями это текстовый файл используется для хранения данных, в которых каждая строка представляет отдельную книгу, компанию или другой объект, а каждая строка имеет поля, разделенные разделителем.[2]По сравнению с видом плоский файл который использует пробелы, чтобы заставить каждое поле иметь одинаковую ширину, файл с разделителями имеет то преимущество, что допускает значения полей любой длины.[3]

Форматы с разделителями

Для разделения значений можно использовать любой символ, но наиболее распространенными разделителями являются запятая, вкладка, и двоеточие.[1]:113[4] В вертикальная полоса (также называемый трубка) и Космос также иногда используются.[1]:113 В значения, разделенные запятыми (CSV) файл элементы данных разделяются запятыми в качестве разделителя, а в значения, разделенные табуляцией (TSV) элементы данных разделяются табуляцией в качестве разделителя. Заголовки столбцов иногда включаются как первая строка, а каждая последующая строка представляет собой строку данных. Строки разделены новые строки.

Например, следующие поля в каждой записи разделены запятыми, а каждая запись - новой строкой:

«Свидание», «Ученик», «Оценка», «25 мая», «Блоггс, Фред», «C» «25 мая», «Доу, Джейн», «B», «15 июля», «Блоггс, Фред», «А» «15 апреля», «Мунис, Элвин» «Хэнк» «», «А»

Обратите внимание на использование двойная кавычка заключить каждое поле. Это предотвращает интерпретацию запятой в фактическом значении поля (Bloggs, Fred; Doe, Jane и т. Д.) Как разделитель полей. Это требует способа "побег "саму оболочку поля, в данном случае двойные кавычки; обычно двойные кавычки, фактически содержащиеся в поле, удваиваются, как и в кавычках, окружающих" Хэнк ". Таким образом, любые ASCII текст, включая символы новой строки, может содержаться в поле.

ASCII включает несколько управляющие символы которые предназначены для использования в качестве разделителей. Они есть: 28 для разделителя файлов, 29 для разделителя групп, 30 для разделителя записей, и 31 для разделителя единиц. Использование этих символов не получило широкого распространения; некоторые системы заменили свои свойства элементов управления более приемлемыми элементами управления, такими как CR / LF и TAB.[нужна цитата ]

Использование и приложения

Текстовые файлы с разделителями-запятыми и табуляциями в связи с их широким распространением можно открывать в различных приложениях, включая большинство электронная таблица программы и статистические пакеты, иногда даже без указания пользователем того, какой разделитель был использован.[5][6] Несмотря на то, что каждое из этих приложений имеет свой собственный дизайн базы данных и свой формат файла (например, accdb или xlsx), все они могут сопоставить поля в файле DSV со своими собственными модель данных и формат.[нужна цитата ]

Обычно формат файла с разделителями указывается в спецификации. Некоторые спецификации содержат соглашения, позволяющие избежать коллизия разделителей, другие нет. Конфликт разделителей - это проблема, которая возникает, когда символ, предназначенный как часть данных, вместо этого интерпретируется как разделитель. Форматы, разделенные запятыми и пробелами, часто страдают от этой проблемы, поскольку во многих контекстах эти символы являются допустимыми частями поля данных.

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

В зависимости от самих данных может быть полезно использовать нестандартные символы, такие как тильда (~), в качестве разделителей. С растущим распространением веб-сайтов и других приложений, хранящих фрагменты кода в базах данных, простого использования символа ", который встречается в каждой гиперссылке и теге источника изображения, просто недостаточно, чтобы избежать этого типа столкновения. Поскольку двоеточия (:), точки с запятой (;), трубы (|) и многие другие символы также используются, может быть довольно сложно найти символ, который не используется где-либо еще.

Смотрите также

Примечания и ссылки

  1. ^ а б c DSV означает Значения, разделенные разделителями Раймонд, Эрик (2004). Искусство программирования под Unix. Бостон: Эддисон-Уэсли. ISBN  0-13-142901-9.
  2. ^ Стивен Р. Вестман.«Создание веб-страниц библиотеки на основе базы данных: использование инструментов с открытым исходным кодом».2006. Раздел «Структурированные текстовые файлы» .стр. 15.
  3. ^ Ричард Петерсен.«Вводная командная строка Unix для пользователей».2006.p. 356.
  4. ^ В UNIX двоеточие является наиболее распространенным разделителем DSV для значений, которые могут содержать пробелы. Там же.
  5. ^ Рыцарь, Эндрю (2000). Основы Matlab и не только. Бока-Ратон: Чепмен и Холл / CRC. ISBN  0-8493-2039-9.
  6. ^ Роббинс, Арнольд (2005). Классический сценарий оболочки. Севастополь: О'Рейли. ISBN  0-596-00595-4.

дальнейшее чтение