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.
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).
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 are o linie de tip urmată de două linii fiecare cu o valoare:
Diferitele câmpuri de date sunt marcate cu una dintre etichete:
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:
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.
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 |