Formát pro výměnu dat - Data Interchange Format

Data Interchange Format (.dif) je formát textového souboru, který se používá k importu/exportu jednotlivých tabulek mezi tabulkovými programy.

Aplikace, které stále podporují formát DIF, jsou Collabora Online , * Excel , Gnumeric a LibreOffice Calc . Historické aplikace, které ji používaly až do konce životnosti nebo již neuznávaly podporu formátu, jsou dBase , FileMaker , Framework , Lotus 1-2-3 , Multiplan , OpenOffice.org Calc a StarCalc .

*Některé implementace způsobily problémy s interoperabilitou, zejména u starších produktů Microsoft Excel , viz níže uvedená část s názvem „Nesrovnalosti v implementacích“.

Omezením formátu DIF je, že nedokáže zpracovat více tabulek v jednom sešitu. Vzhledem k podobnosti ve zkratce a ve věku (oba pocházejí z počátku 80. let), formát tabulky DIF je často zaměňován s Navy DIF ; Navy DIF je však nesouvisející „formát pro výměnu dokumentů“ pro textové procesory.

Dějiny

DIF byl vyvinut společností Software Arts, Inc. (vývojáři programu VisiCalc ) na začátku 80. let minulého století. Specifikace byla zahrnuta v mnoha kopiích VisiCalc a publikována v Byte Magazine . Bob Frankston vyvinul formát za přispění ostatních, včetně Mitcha Kapora , který pomohl, aby mohl fungovat s jeho programem VisiPlot. (Kapor později založil Lotus a přiměl Lotus 1-2-3, aby se stal.) Specifikace byla chráněna autorskými právy z roku 1981.

DIF byla registrovaná ochranná známka společnosti Software Arts Products Corp. (v té době oficiální název pro Software Arts).

Syntax

DIF ukládá vše do textového souboru ASCII, aby zmírnilo mnoho problémů napříč platformami v dobách jeho vzniku. Nicméně moderní tabulkový software, např. OpenOffice.org Calc a Gnumeric , nabízí více kódování znaků pro export/import. Soubor je rozdělen na 2 části: záhlaví a data. Všechno v DIF je reprezentováno 2- nebo 3řádkovým blokem. Záhlaví dostanou 3řádkový kus; data, 2. Bloky záhlaví začínají textovým identifikátorem, který je psán velkými písmeny, pouze abecedními znaky a méně než 32 písmeny. Následující řádek musí být dvojice čísel a třetí řádek musí být řetězec v uvozovkách. Na druhou stranu datové bloky začínají dvojicí čísel a další řádek je citovaný řetězec nebo klíčové slovo.

Hodnoty

Hodnota zabírá dva řádky, první dvojici čísel a druhý buď řetězec, nebo klíčové slovo. První číslo páru označuje typ:

  • −1 - typ směrnice, druhé číslo je ignorováno, následující řádek je jedním z těchto klíčových slov:
    • BOT - začátek řazené kolekce členů (začátek řady)
    • EOD - konec dat
  • 0 - číselný typ, hodnota je druhé číslo, následující řádek je jedním z těchto klíčových slov:
    • V - platné
    • NA - není k dispozici
    • ERROR - chyba
    • TRUE - skutečná logická hodnota
    • FALSE - false boolean value
  • 1 - typ řetězce, druhé číslo je ignorováno, následující řádek je řetězec v uvozovkách

Část záhlaví

Část záhlaví se skládá z řádku identifikátoru, za nímž následují dva řádky hodnoty.

  • TABLE - po verzi následuje číselná hodnota, nepoužívaný druhý řádek hodnoty obsahuje komentář generátoru
  • VECTORS - počet sloupců následuje jako číselná hodnota
  • TUPLES - počet řádků následuje jako číselná hodnota
  • DATA - po fiktivní 0 číselné hodnotě následují data pro tabulku, každý řádek předchází hodnota BOT, celá tabulka je ukončena hodnotou EOD

Číselné hodnoty v blocích záhlaví používají místo klíčových slov platnosti pouze prázdný řetězec.

Nesrovnalosti v implementacích

Některé implementace (zejména ty ze starších produktů Microsoft) prohodily význam VECTORS a TUPLES. Některé implementace jsou necitlivé na chyby v rozměrech tabulky, jak jsou zapsány v záhlaví, a jednoduše používají rozložení v sekci DATA.

Příklad

Předpokládejme například, že máme dva sloupce s jedním řádkem záhlaví sloupce a dvěma datovými řádky:

Text Číslo
Ahoj 1
má v textu dvojitou uvozovku “ -3

V souboru .dif by to bylo (→ označuje komentáře):

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

Viz také

Reference

Prameny

externí odkazy