В форматах, в которых используются значения с разделителями (также DSV ), хранятся двумерные массивы данных, разделяя значения в каждой строке конкретными символами delimiter . Большинство программ базы данных и электронных таблиц могут читать или сохранять данные в формате с разделителями. Благодаря широкой поддержке файлы DSV могут использоваться для обмена данными между многими приложениями.
A текстовый файл с разделителями - это текстовый файл , используемый для хранения данных, в котором каждая строка представляет отдельную книгу, компанию или другой объект, и каждая строка имеет поля, разделенные разделителем. По сравнению с типом плоского файла, в котором используются пробелы для принуждения всех полей к одинаковой ширине, файл с разделителями имеет то преимущество, что допускает значения полей любой длины.
Любой символ может использоваться для разделения значения, но наиболее распространенными разделителями являются запятая, табуляция и двоеточие. Также иногда используются вертикальная черта (также называемая вертикальной чертой) и пробел. В файле значений с разделителями-запятыми (CSV) элементы данных разделяются запятыми в качестве разделителя, а в файле значений, разделенных табуляцией (TSV), элементы данных разделяются табуляцией в качестве разделителя. Заголовки столбцов иногда включаются в первую строку, а каждая последующая строка представляет собой строку данных. Строки разделяются новой строкой.
Например, следующие поля в каждой записи разделяются запятыми, а каждая запись - символами новой строки:
«Дата», «Ученик», «Оценка» » 25 мая »,« Bloggs, Fred »,« C »,« 25 мая »,« Doe, Jane »,« B »,« 15 июля »,« Bloggs, Fred »,« A »,« 15 апреля »,« Muniz, Alvin » "" Hank "" "," A "
Обратите внимание на использование двойных кавычек для заключения каждого поля. Это предотвращает интерпретацию запятой в фактическом значении поля (Bloggs, Fred; Doe, Jane и т. Д.) Как разделитель полей. Это требует способа «экранировать » самой оболочки поля, в данном случае двойных кавычек; обычно двойные кавычки, фактически содержащиеся в поле, удваиваются, как и в кавычках, окружающих «Хэнк». Таким образом, любой текст ASCII, включая символы новой строки, может содержаться в поле.
ASCII включает несколько управляющих символов, которые предназначены для использования в качестве разделителей. Это: 28 для разделителя файлов, 29 для разделителя групп, 30 для разделителя записей и 31 для разделителя единиц. Использование этих символов не получило широкого распространения; некоторые системы заменили свои свойства элементов управления более общепринятыми элементами управления, такими как CR / LF и TAB.
Из-за их широкого использования запятая и табуляция -деленные текстовые файлы могут быть открыты несколькими типами приложений, включая большинство программ электронных таблиц и статистических пакетов, иногда даже без указания пользователем, какой разделитель был использован. Несмотря на то, что каждое из этих приложений имеет свой собственный дизайн базы данных и свой собственный формат файла (например, accdb или xlsx), все они могут сопоставлять поля в файле DSV со своими собственными модель данных и формат.
Обычно формат файла с разделителями указывается в спецификации. Некоторые спецификации содержат соглашения, позволяющие избежать столкновения разделителей , другие - нет. Конфликт разделителей - это проблема, которая возникает, когда символ, предназначенный как часть данных, вместо этого интерпретируется как разделитель. Форматы, разделенные запятыми и пробелами, часто страдают от этой проблемы, поскольку во многих контекстах эти символы являются допустимыми частями поля данных.
Большинство таких файлов избегают коллизии разделителей, либо заключая все поля данных в двойные кавычки, либо заключая в кавычки только те поля данных, которые содержат символ разделителя. Одна проблема с текстовыми файлами, разделенными табуляцией, состоит в том, что табуляции трудно отличить от пробелов; поэтому иногда возникают проблемы с повреждением файлов, когда люди пытаются отредактировать их вручную. Другой набор проблем возникает из-за ошибок в структуре файла, обычно во время импорта файла в базу данных (в приведенном выше примере такой ошибкой может быть отсутствие имени ученика).
В зависимости от самих данных может быть полезно использовать нестандартные символы, такие как тильда (~), в качестве разделителей. С растущим распространением веб-сайтов и других приложений, которые хранят фрагменты кода в базах данных, простого использования символа ", который встречается в каждой гиперссылке и теге источника изображения, просто недостаточно, чтобы избежать этого типа коллизии. Поскольку двоеточия (:), точки с запятой (;), вертикальные черты (|) и многие другие символы также используются, может быть довольно сложно найти символ, который не используется где-либо еще.