Format wymiany danych — Data Interchange Format

Data Interchange Format (.dif) to format pliku tekstowego używany do importowania/eksportowania pojedynczych arkuszy kalkulacyjnych między programami arkuszy kalkulacyjnych.

Aplikacje, które nadal obsługują format DIF, to Collabora Online , * Excel , Gnumeric i LibreOffice Calc . Historyczne aplikacje, które obsługiwały ten format do końca życia lub nie potwierdzały już obsługi tego formatu, to dBase , FileMaker , Framework , Lotus 1-2-3 , Multiplan , OpenOffice.org Calc i StarCalc .

*Niektóre implementacje powodowały problemy ze współdziałaniem, zwłaszcza starszych produktów Microsoft Excel , patrz sekcja poniżej zatytułowana „Rozbieżności w implementacjach”.

Ograniczeniem formatu DIF jest to, że nie może obsługiwać wielu arkuszy kalkulacyjnych w jednym skoroszycie. Ze względu na podobieństwo skrótów i wieku (daty na początek lat 80. XX wieku), format arkusza kalkulacyjnego DIF jest często mylony z Navy DIF ; Navy DIF jest jednak niepowiązanym „formatem wymiany dokumentów” dla edytorów tekstu.

Historia

DIF został opracowany przez Software Arts, Inc. (twórców programu VisiCalc ) na początku lat 80-tych. Specyfikacja znalazła się w wielu egzemplarzach VisiCalc i została opublikowana w Byte Magazine . Bob Frankston opracował format, przy udziale innych osób, w tym Mitcha Kapora , który pomógł, aby mógł on współpracować z jego programem VisiPlot. (Kapor później założył Lotusa i urzeczywistnił Lotus 1-2-3 .) Specyfikacja była chroniona prawem autorskim 1981.

DIF był zastrzeżonym znakiem towarowym Software Arts Products Corp. (wówczas prawna nazwa Software Arts).

Składnia

DIF przechowuje wszystko w pliku tekstowym ASCII , aby złagodzić wiele problemów międzyplatformowych w czasach jego tworzenia. Jednak nowoczesne oprogramowanie do arkuszy kalkulacyjnych, np. OpenOffice.org Calc i Gnumeric , oferuje więcej kodowania znaków do eksportu/importu. Plik podzielony jest na 2 sekcje: nagłówek i dane. Wszystko w DIF jest reprezentowane przez 2- lub 3-wierszowy fragment. Nagłówki otrzymują 3-wierszowy fragment; danych, 2. Fragmenty nagłówka zaczynają się od identyfikatora tekstowego składającego się z samych wersalików, tylko znaków alfabetycznych i mniej niż 32 litery. Kolejny wiersz musi być parą liczb, a trzeci wiersz musi być ciągiem w cudzysłowie. Z drugiej strony, porcje danych zaczynają się od pary liczb, a następny wiersz jest ciągiem w cudzysłowie lub słowem kluczowym.

Wartości

Wartość zajmuje dwa wiersze, pierwszy parę liczb, a drugi ciąg znaków lub słowo kluczowe. Pierwsza cyfra pary wskazuje typ:

  • −1 – typ dyrektywy, druga liczba jest ignorowana, poniższy wiersz jest jednym z tych słów kluczowych:
    • BOT – początek krotki (początek rzędu)
    • EOD – koniec danych
  • 0 – typ numeryczny, wartość to druga liczba, poniższy wiersz to jedno z tych słów kluczowych:
    • V – ważny
    • NA – niedostępne
    • BŁĄD – błąd
    • TRUE – prawdziwa wartość logiczna
    • FALSE – fałszywa wartość logiczna
  • 1 – typ string, druga liczba jest ignorowana, następna linia to łańcuch w podwójnych cudzysłowach

Fragment nagłówka

Porcja nagłówka składa się z wiersza identyfikatora, po którym następują dwa wiersze wartości.

  • TABELA - wartość liczbowa wynika z wersji, nieużywany drugi wiersz wartości zawiera komentarz generatora
  • VECTORS - liczba kolumn następuje jako wartość liczbowa
  • KRÓTKI - liczba rzędów jest wartością liczbową
  • DATA - po fikcyjnej wartości liczbowej 0 następują dane do tabeli, każdy wiersz poprzedzony wartością BOT, cała tabela zakończona wartością EOD

Wartości liczbowe w fragmentach nagłówka używają tylko pustego ciągu zamiast słów kluczowych poprawności.

Rozbieżności we wdrożeniach

Niektóre implementacje (zwłaszcza te ze starszych produktów Microsoft) zamieniły znaczenie VECTORS i TUPLES. Niektóre implementacje są niewrażliwe na błędy w wymiarach tabeli, jak napisano w nagłówku i po prostu używają układu w sekcji DANE.

Przykład

Załóżmy na przykład, że mamy dwie kolumny z jednym wierszem nagłówka kolumny i dwoma wierszami danych:

Tekst Numer
dzień dobry 1
ma podwójny cudzysłów „w tekście -3

W pliku .dif będzie to (→ wskazuje komentarze):

TABLE
0,1
"EXCEL"
VECTORS     → the number of columns follows as a numeric value
0,2         → '0' indicates that it's a numeric type, '2' since we have 2 columns
""
TUPLES      → the number of rows follows as a numeric value
0,3         → '0' indicates that it's a numeric type, '3' since we have 3 rows
""
DATA        → after a dummy 0 numeric value, the data for the table follow
0,0         → this is the dummy 0 numeric value
""
-1,0        → '-1' for the directive type. This is followed by either a 'BOT' or an 'EOD'
BOT         → signifies the start of a row
1,0         → '1' since the cell contains a string. (The second number is ignored)
"Text"      → this is the String that's in the cell
1,0         → '1' since the cell contains a string.
"Number" 
-1,0  
BOT         → another row 
1,0         → a string follows
"hello"
0,1         → numeric value ('0') of value '1'
V           → 'V' is for 'Valid'
-1,0 
BOT         → another row
1,0
"has a double quote "" in text"
0,-3
V
-1,0 
EOD         → End of Data

Zobacz też

Bibliografia

Źródła

Zewnętrzne linki