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
- Jeff Walden: Formáty souborů pro populární PC software. John Wiley & Sons, Inc., 1986. ISBN 0-471-83671-0
- Komentář od Dan Bricklin , jeden z vývojářů VisiCalc , na diskusní stránku tohoto článku
- Commodore 64 datových souborů, ZÁKLADNÍ návod. (1984). David Miller. ISBN 0835907910 . Stránky 212-231.
externí odkazy
- Oznámení DIF Clearinghouse společností Software Arts Products Corp.