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
- Jeff Walden: Formaty plików dla popularnego oprogramowania komputerowego. John Wiley & Sons, Inc., 1986. ISBN 0-471-83671-0
- Komentarz od Dan Bricklin , jeden z twórców VisiCalc na stronie dyskusji tego artykułu
- Commodore 64 Data Files, BASIC Tutorial. (1984). Davida Millera. ISBN 0835907910 . Strony 212-231.
Zewnętrzne linki
- Ogłoszenie DIF Clearinghouse przez Software Arts Products Corp.