Data Interchange Format
From Wikipedia, the free encyclopedia
Data Interchange Format (.dif) is a text file format used to import/export single spreadsheets between spreadsheet programs (Excel, StarCalc, Lotus 1-2-3, FileMaker, dBase, Framework, Multiplan, etc.). One limitation is that DIF format cannot handle multiple spreadsheets in a single workbook.
[edit] Syntax
The syntax for a DIF file is
dif_file ::= dif_title dif_header * dif_data dif_title ::= "TABLE" nl "0" "," version nl title nl dif_header ::= dimension_count | tuple_count | dimension_comment | dimension_label | dimension_size | dimension_period | dimension_period_start | dimension_unit | dimension_display_unit dimension_count ::= -- count of number of columns "VECTORS" nl "0" "," natural_integer nl empty_string nl tuple_count ::= -- count of number of rows "TUPLES" nl "0" "," natural_integer nl empty_string nl dimension_comment ::= "COMMENT" nl dimension_number "," line_number nl string nl dimension_label ::= -- labels a specific dimension "LABEL" nl dimension_number "," line_number nl string nl dimension_size ::= "SIZE" nl dimension_number "," byte_count nl empty_string nl dimension_period ::= "PERIODICITY" nl dimension_number "," period nl empty_string nl dimension_period_start ::= "MINORSTART" nl dimension_number "," period nl empty_string nl dimension_true_length ::= "TRUELENGTH" nl dimension_number "," byte_count nl empty_string nl dimension_unit ::= "UNITS" nl dimension_number "," "0" nl unit_name nl dimension_display_unit ::= "DISPLAYUNITS" nl dimension_number "," "0" nl unit_name nl dif_data ::= "DATA" nl "0" "," "0" nl empty_string nl tuple * "EOD" nl tuple ::= beginning_of_tuple tuple_value + beginning_of_tuple ::= "-1" "," "0" nl "BOT" nl tuple_value ::= numeric_value | NA_value | error_value | true_value | false_value | string_value numeric_value ::= "0" "," decimal_number nl "V" nl NA_value ::= "0" "," "0" nl "NA" nl error_value ::= "0" "," "0" nl "ERROR" nl true_value ::= "0" "," "1" nl "TRUE" nl false_value ::= "0" "," "0" nl "FALSE" nl string_value ::= "1" "," "0" nl string nl
byte_count ::= ordinal_integer dimension_number ::= natural_integer line_number ::= natural_integer title ::= string unit_name ::= string version ::= "1"
decimal_number ::= [+-]? digit+ ("." digit+ )? | [+-]? digit* "." digit+ ordinal_integer ::= natural_integer (but not "0") natural_integer ::= digit+ digit ::= [0123456789] empty_string ::= quot quot string ::= quot string_char* quot string_char ::= [^"] | quot quot quot ::= ["]
For example, assume we have two columns with one column header row and two data rows:
Text | Number |
---|---|
hello | 1 |
has a double quote " in text | -3 |
In a .dif file, this would be
TABLE 0,1 "EXCEL" VECTORS 0,3 "" TUPLES 0,2 "" DATA 0,0 "" -1,0 BOT 1,0 "Text" 1,0 "Number" -1,0 BOT 1,0 "hello" 0,1 V -1,0 BOT 1,0 "has a double quote "" in text" 0,-3 V -1,0 EOD
[edit] External links
- .DIF File Extension Information - FileInfo.net
- Wotsit's Format: A list of database formats.