Форматы, в которых используются значения, разделенные разделителями (также DSV ) [1] : 113, хранят двумерные массивы данных, разделяя значения в каждой строке определенными символами- разделителями . Большинство программ баз данных и электронных таблиц могут читать или сохранять данные в формате с разделителями. Благодаря широкой поддержке файлы DSV могут использоваться для обмена данными между многими приложениями.
Текстовый файл с разделителями представляет собой текстовый файл , используемый для хранения данных, в котором каждая строка представляет одну книгу, компанию или другую вещь, и каждая линия имеет поле отделено друг от друга разделителя. [2] По сравнению с типом плоского файла, в котором используются пробелы для принуждения всех полей к одинаковой ширине, файл с разделителями имеет то преимущество, что допускает значения полей любой длины. [3]
Форматы с разделителями
Для разделения значений можно использовать любой символ, но наиболее распространенными разделителями являются запятая , табуляция и двоеточие . [1] : 113 [4] вертикальная полоса (также упоминается как трубы ) и пространство также иногда используются. [1] : 113 В , разделенные запятыми (CSV) файл элементы данных разделены запятыми в качестве разделителя, в то время как в значения , разделенные табуляцией файла (ТСВ), элементы данных разделены с помощью вкладок в качестве разделителя. Заголовки столбцов иногда включаются в первую строку, а каждая последующая строка представляет собой строку данных. Строки разделяются символами новой строки .
Например, следующие поля в каждой записи разделены запятыми, а каждая запись - символами новой строки:
«Свидание», «Ученица», «Оценка»«25 мая», «Блоги, Фред», «С»«25 мая», «Доу, Джейн», «Б»«15 июля», «Блоги, Фред», «А»«15 апреля», «Мунис, Элвин», «Хэнк», «А»
Обратите внимание на использование двойных кавычек для заключения каждого поля. Это предотвращает интерпретацию запятой в фактическом значении поля (Bloggs, Fred; Doe, Jane и т. Д.) Как разделитель полей. Это требует способа « избежать » самой оболочки поля, в данном случае двойной кавычки; обычно двойные кавычки, фактически содержащиеся в поле, удваиваются, как и в кавычках, окружающих «Хэнк». Таким образом, любой текст ASCII, включая символы новой строки, может содержаться в поле.
ASCII включает несколько управляющих символов , которые предназначены для использования в качестве разделителей. Это: 28 для разделителя файлов , 29 для разделителя групп , 30 для разделителя записей и 31 для разделителя единиц . Использование этих символов не получило широкого распространения; некоторые системы заменили свои свойства управления более общепринятыми элементами управления, такими как CR / LF и TAB. [ необходима цитата ]
Использование и приложения
Из-за их широкого использования текстовые файлы с разделителями-запятыми и табуляциями могут открываться несколькими типами приложений, включая большинство программ для работы с электронными таблицами и статистических пакетов , иногда даже без указания пользователем того, какой разделитель был использован. [5] [6] Несмотря на то, что каждое из этих приложений имеет собственный дизайн базы данных и собственный формат файла (например, accdb или xlsx), все они могут отображать поля в файле DSV в свою собственную модель данных и формат. [ необходима цитата ]
Обычно формат файла с разделителями указывается в спецификации. Некоторые спецификации предоставляют соглашения, позволяющие избежать коллизии разделителей , другие - нет. Конфликт разделителей - это проблема, которая возникает, когда символ, предназначенный как часть данных, вместо этого интерпретируется как разделитель. Форматы, разделенные запятыми и пробелами, часто страдают от этой проблемы, поскольку во многих контекстах эти символы являются допустимыми частями поля данных. Большинство таких файлов избегают коллизии разделителей, либо заключая все поля данных в двойные кавычки, либо помещая в кавычки только те поля данных, которые содержат символ разделителя. Одна проблема с текстовыми файлами, разделенными табуляцией, заключается в том, что табуляцию трудно отличить от пробелов; поэтому иногда возникают проблемы с повреждением файлов, когда люди пытаются отредактировать их вручную. Другой набор проблем возникает из-за ошибок в файловой структуре, обычно во время импорта файла в базу данных (в приведенном выше примере такой ошибкой может быть отсутствие имени ученика).
В зависимости от самих данных может быть полезно использовать нестандартные символы, такие как тильда (~), в качестве разделителей. С растущим распространением веб-сайтов и других приложений, хранящих фрагменты кода в базах данных, простого использования символа ", который встречается в каждой гиперссылке и теге источника изображения, просто недостаточно, чтобы избежать этого типа коллизии. (;), трубы (|) и многие другие символы также используются, может быть довольно сложно найти символ, который не используется где-либо еще.
Смотрите также
Примечания и ссылки
- ^ a b c DSV означает значения, разделенные разделителями, Раймонд, Эрик (2004). Искусство программирования Unix . Бостон: Эддисон-Уэсли. ISBN 0-13-142901-9.
- ^ Стивен Р. Вестман. «Создание веб-страниц библиотеки на основе базы данных: Использование инструментов с открытым исходным кодом» . 2006. Раздел «Структурированные текстовые файлы». п. 15.
- ^ Ричард Петерсен. «Вводная командная строка Unix для пользователей» . 2006. с. 356.
- ^ В UNIX двоеточие является наиболее распространенным разделителем DSV для значений, которые могут содержать пробелы. Там же .
- ^ Рыцарь, Эндрю (2000). Основы Matlab и не только . Бока-Ратон: Chapman & Hall / CRC. ISBN 0-8493-2039-9.
- ^ Роббинс, Арнольд (2005). Классический сценарий оболочки . Севастополь: О'Рейли. ISBN 0-596-00595-4.
дальнейшее чтение
- "Руководство администратора IBM DB2 - форматы файлов ЗАГРУЗКА, ИМПОРТ и ЭКСПОРТ" . IBM . Архивировано 13 декабря 2016 года . Проверено 12 декабря 2016 . (Имеет описания файлов ASCII с разделителями (.DEL) и без разделителей (.ASC) для передачи данных.)