Formato de intercâmbio de dados - Data Interchange Format

O Data Interchange Format (.dif) é um formato de arquivo de texto usado para importar / exportar planilhas únicas entre programas de planilhas.

Os aplicativos que ainda suportam o formato DIF são Collabora Online , * Excel , Gnumeric e LibreOffice Calc . Os aplicativos históricos que o suportavam até o fim da vida útil ou que não reconheciam mais o suporte ao formato são dBase , FileMaker , Framework , Lotus 1-2-3 , Multiplan , OpenOffice.org Calc e StarCalc .

* Algumas implementações causaram problemas de interoperabilidade, especialmente aqueles de produtos Microsoft Excel mais antigos , consulte a seção abaixo chamada "Discrepâncias nas implementações".

Uma limitação do formato DIF é que ele não pode lidar com várias planilhas em uma única pasta de trabalho. Devido à semelhança na abreviatura e na idade (ambas datam do início dos anos 1980), o formato da planilha DIF é frequentemente confundido com o DIF da Marinha ; O DIF da Marinha, no entanto, é um "formato de intercâmbio de documentos" não relacionado para processadores de texto.

História

O DIF foi desenvolvido pela Software Arts, Inc. (os desenvolvedores do programa VisiCalc ) no início dos anos 1980. A especificação foi incluída em muitas cópias do VisiCalc e publicada na Byte Magazine . Bob Frankston desenvolveu o formato, com contribuições de outras pessoas, incluindo Mitch Kapor , que ajudou para que ele pudesse funcionar com seu programa VisiPlot. (Kapor posteriormente fundou a Lotus e fez o Lotus 1-2-3 acontecer.) A especificação era de copyright de 1981.

DIF era uma marca registrada da Software Arts Products Corp. (nome legal da Software Arts na época).

Sintaxe

O DIF armazena tudo em um arquivo de texto ASCII para mitigar muitos problemas de plataforma cruzada na época de sua criação. No entanto, softwares de planilha modernos, por exemplo, OpenOffice.org Calc e Gnumeric , oferecem mais codificação de caracteres para exportar / importar. O arquivo é dividido em 2 seções: cabeçalho e dados. Tudo em DIF é representado por um bloco de 2 ou 3 linhas. Os cabeçalhos recebem um bloco de 3 linhas; dados, 2. Os blocos de cabeçalho começam com um identificador de texto que contém todas as letras maiúsculas, apenas caracteres alfabéticos e menos de 32 letras. A linha a seguir deve ser um par de números e a terceira linha deve ser uma string entre aspas. Por outro lado, os blocos de dados começam com um par de números e a próxima linha é uma string entre aspas ou uma palavra-chave.

Valores

Um valor ocupa duas linhas, a primeira um par de números e a segunda uma string ou uma palavra-chave. O primeiro número do par indica o tipo:

  • -1 - tipo de diretiva, o segundo número é ignorado, a seguinte linha é uma destas palavras-chave:
    • BOT - início da tupla (início da linha)
    • EOD - fim dos dados
  • 0 - tipo numérico, o valor é o segundo número, a linha a seguir é uma destas palavras-chave:
    • V - válido
    • NA - não disponível
    • ERROR - erro
    • TRUE - verdadeiro valor booleano
    • FALSE - valor booleano falso
  • 1 - tipo de string, o segundo número é ignorado, a linha seguinte é a string entre aspas duplas

Bloco de cabeçalho

Um pedaço de cabeçalho é composto de uma linha identificadora seguida pelas duas linhas de um valor.

  • TABELA - segue um valor numérico da versão, a segunda linha desativada do valor contém um comentário do gerador
  • VETORES - o número de colunas segue como um valor numérico
  • TUPLES - o número de linhas segue como um valor numérico
  • DATA - após um valor numérico fictício 0, os dados da tabela seguem, cada linha precedida por um valor BOT, a tabela inteira terminada por um valor EOD

Os valores numéricos em blocos de cabeçalho usam apenas uma string vazia em vez das palavras-chave de validade.

Discrepâncias nas implementações

Algumas implementações (principalmente aquelas de produtos Microsoft mais antigos) trocaram o significado de VECTORS e TUPLES. Algumas implementações são insensíveis a erros nas dimensões da tabela conforme escrito no cabeçalho e simplesmente usam o layout na seção DATA.

Exemplo

Por exemplo, suponha que temos duas colunas com uma linha de cabeçalho de coluna e duas linhas de dados:

Texto Número
Olá 1
tem aspas duplas "no texto -3

Em um arquivo .dif, seria (→ indica comentários):

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

Veja também

Referências

Fontes

links externos