Эта статья может быть слишком технической для понимания большинства читателей . ( Сентябрь 2010 ) |
Формат обмена данными (.dif) — это текстовый формат файла , используемый для импорта/экспорта отдельных электронных таблиц между программами электронных таблиц.
Приложения, которые все еще поддерживают формат DIF, это Collabora Online , Excel , [примечание 1] Gnumeric и LibreOffice Calc . Исторические приложения, которые поддерживали его до окончания срока службы или до того, как перестали признавать поддержку формата, это dBase , FileMaker , Framework , Lotus 1-2-3 , Multiplan , OpenOffice.org Calc и StarCalc . [1] [2]
Ограничением формата DIF является то, что он не может обрабатывать несколько электронных таблиц в одной рабочей книге. Из-за схожести аббревиатуры и возраста (оба относятся к началу 1980-х годов) формат электронных таблиц DIF часто путают с Navy DIF ; Navy DIF, однако, является несвязанным «форматом обмена документами» для текстовых процессоров. [3]
DIF был разработан компанией Software Arts, Inc. (разработчиками программы VisiCalc ) в начале 1980-х годов. Спецификация была включена во многие копии VisiCalc и опубликована в журнале Byte Magazine . Боб Фрэнкстон разработал формат при участии других, включая Митча Капора , который помог, чтобы он мог работать с его программой VisiPlot. (Позже Капор основал Lotus и создал Lotus 1-2-3 .) Спецификация была защищена авторским правом 1981 года.
DIF был зарегистрированной торговой маркой Software Arts Products Corp. (в то время это было официальное название Software Arts).
DIF хранит все в текстовом файле ASCII , чтобы смягчить многие кроссплатформенные проблемы еще в дни его создания. Однако современное программное обеспечение для работы с электронными таблицами, например OpenOffice.org Calc и Gnumeric , предлагает больше кодировок символов для экспорта/импорта. Файл разделен на 2 раздела: заголовок и данные. Все в DIF представлено 2- или 3-строчным фрагментом. Заголовки получают 3-строчный фрагмент; данные - 2. Фрагменты заголовков начинаются с текстового идентификатора, который полностью состоит из заглавных букв, только из буквенных символов и менее чем из 32 букв. Следующая строка должна быть парой цифр, а третья строка должна быть строкой в кавычках. С другой стороны, фрагменты данных начинаются с пары цифр, а следующая строка - это строка в кавычках или ключевое слово.
Значение занимает две строки, первая — пара чисел, а вторая — либо строка, либо ключевое слово. Первое число пары указывает тип:
Заголовочный фрагмент состоит из строки идентификатора, за которой следуют две строки значения.
Числовые значения в заголовочных фрагментах используют просто пустую строку вместо ключевых слов валидности.
Некоторые реализации (особенно те, что относятся к старым продуктам Microsoft) поменяли местами значения VECTORS и TUPLES. Некоторые реализации нечувствительны к ошибкам в измерениях таблицы, как указано в заголовке, и просто используют макет в разделе DATA.
Например, предположим, что у нас есть два столбца с одной строкой заголовка столбца и двумя строками данных:
Текст | Число |
---|---|
привет | 1 |
имеет двойные кавычки " в тексте | −3 |
В файле .dif это будет выглядеть так (→ обозначает комментарии):
СТОЛ0,1"ЭКСЕЛЬ"ВЕКТОРЫ → количество столбцов следует в виде числового значения0,2 → «0» указывает на числовой тип, «2» — на то, что у нас 2 столбца.""КОРТЕЖИ → количество строк следует в виде числового значения0,3 → «0» указывает на числовой тип, «3» — поскольку у нас 3 строки.""ДАННЫЕ → после фиктивного числового значения 0 следуют данные для таблицы0,0 → это фиктивное числовое значение 0""-1,0 → '-1' для типа директивы. Далее следует 'BOT' или 'EOD'BOT → обозначает начало ряда1,0 → «1», так как ячейка содержит строку. (Второе число игнорируется)«Текст» → это строка, которая находится в ячейке1,0 → «1», так как ячейка содержит строку."Число"-1,0 БОТ → еще одна строка1,0 → далее следует строка"привет"0,1 → числовое значение («0») значения «1»V → «V» означает «Действительный»-1,0БОТ → еще одна строка1,0"в тексте есть двойные кавычки"0,-3В-1,0EOD → Конец данных