Format de schimb de date

Format de schimb de date (alias „Navy DIF”, cu extensia de fișier .dif) este un format de date ASCII conceput la începutul anilor 1980 pentru a permite conversia foilor de calcul simple (o filă) între DBMS-uri. Apoi: Lotus 1-2-3 , FileMaker Pro , DBase , Framework , Multiplan etc. Poate fi corectat de OpenOffice , LibreOffice , Excel , Gnumeric și StarCalc . Principala sa limitare este că nu permite codarea mai multor file ale unei foi de calcul în același fișier.

Istoric

Formatul DIF a fost dezvoltat de Bob Frankston de Arte Software, Inc . pentru VisiCalc la începutul anilor 1980. Specificațiile de format au fost comunicate în documentația VisiCalc și au fost chiar publicate în revista Byte . Acest format DIF a fost brevetat în 1981 de către Software Arts Products Corp. ( denumirea companiei Software Arts la acea vreme).

Sintaxă

Pentru a depăși caracteristicile specifice ale diferitelor formate utilizate de software de la începutul anilor 1980, DIF salvează datele într-un fișier text în format ASCII. Acest fișier are două secțiuni: o secțiune antet și o secțiune de date. În formatul DIF, fiecare secțiune constă dintr-un bloc de 2 sau 3 linii:

Antetul fișierului

Antetul fișierului are o linie de tip urmată de două linii fiecare cu o valoare:

Diferitele câmpuri de date sunt marcate cu una dintre etichete:

Celulele

Fiecare celulă este codificată pe două linii:

Primul număr din prima linie indică tipul, al doilea număr este ignorat. Cuvintele cheie care pot fi găsite pe următorul rând sunt:

Implementări heterodoxe

Unele implementări (în special cele ale software-ului Microsoft timpuriu) au dat o interpretare inversă a formatelor VECTORS și TUPLES. Unele implementări nici măcar nu iau în considerare dimensiunile indicate în antet: decodează separatoarele de rând ale blocului de valori și țin seama doar de asta.

Exemplu

De exemplu, să presupunem că trebuie să stocăm o foaie de lucru care are două coloane, cu un prim rând de titluri, două rânduri de antet de coloană și două rânduri de date:

Text Date
Buna ziua 1
un citat dublu "în text -3

Codificarea într-un fișier .dif ar da:

Codificat Comentarii
MASA
0,1
"EXCELA"
VECTORI cuvânt cheie urmat de indicarea unui număr de coloane:
0,2 „0” indică un câmp de tip numeric, „2” este numărul de coloane
""
CUPLUI cuvânt cheie urmat de indicarea unui număr de linii ...
0,3 „0” indică un câmp de tip numeric, „3” este numărul de linii
""
DATE urmat de un 0 convențional, apoi datele reale
0,0
""
-1,0 „-1” indică o etichetă de bloc: „BOT” sau „EOD”
BOT începutul etichetei de linie
1.0 „1” indică o valoare de tip șir (următorul 0 este silențios)
"Text" Șirul conținut în celulă
1.0 „1” indică o valoare de tip șir.
"Date" Șirul conținut în celulă
-1,0 Prefixul unei etichete de bloc
BOT O altă linie care conține un șir ((1,0) → „salut”) și un câmp numeric ( (0,1) )
1.0
"Buna ziua"
0,1 câmpul numeric (0) care conține valoarea 1
V Date corecte ( V înseamnă „valabil”)!
-1,0 Prefixul unei etichete de bloc
BOT inca o linie ...
1.0
„un citat dublu” „în text”
0, -3 o celulă numerică care conține valoarea -3
V
-1,0 Prefixul unei etichete de bloc
EOD Sfârșitul datelor

Surse

Note

  1. Cu toate acestea, foile de calcul mai noi, cum ar fi Calc și Gnumeric, includ câteva caractere suplimentare în acest format.