Pergunta

Manhã de tudo,

eu fui e disse a um cliente que eu poderia migrar alguns de seus dados antigos fora de um sistema baseado em DOS para o novo sistema que eu desenvolvi para eles. No entanto, eu disse que sem realmente olhando para os arquivos que armazenados os dados do sistema antigo - Eu só percebi uma rápida Google iria resolver todo o problema para mim ... Eu estava errado

!

De qualquer forma, este programa tem uma pasta com centenas ... bem 800 arquivos com todos os tipos de extensões de arquivo, .ave, bak, .brw, .dat, .001, .002 ...., .007, .dbf, .dbe e .his.

bak, obviamente, não é um arquivo de backup SQL.

Alguém tem alguma experiência em programação usando qualquer um desses tipos de arquivo que pode ser capaz de me aponte na direção de alguma forma para ler e extrair os dados?

Eu não posso mencionar o nome do programa para a razão que eu não acho que o desenvolvedor original vai permitir isso ...

Graças.

Foi útil?

Solução

Eu estou disposto a apostar que o arquivo .dbf está em formato de DBase , que é realmente simples. O conteúdo do que pode fornecer pistas para o resto deles.

Outras dicas

utilitário unix 'arquivo' pode ser usado para reconhecer muitos tipos de arquivos pelo seu 'número mágico'. Ele examina o conteúdo do arquivo e compara-o com milhares de formatos conhecidos. Se os arquivos estão em qualquer tipo de formato comum, este pode provavelmente poupar uma boa quantidade de trabalho.

Se eles não estão em um formato comum, pode enviar-lhe perseguindo pistas falsas. Tire suas sugestões como tal, sugestões.

Em complemento aos sites sugeridos por Greg Dmitriy , há também o repositório de arquivo formatos em http://www.wotsit.org ( "Qual é o seu formato?").

Se isso não ajuda, um editor bom hex (com display dump) é seu amigo ... Eu sempre achei incrível o quão fácil pode ser a de ler e reconhecer vários formatos de arquivo.

Pode ser qualquer coisa. Ser melhor é abrir com um hex editor , e veja o que você pode ver

A maioria dos sistemas mais antigos usaram um ISAM básico que tinha um arquivo por tabela que continha um conjunto de registros de dados de comprimento fixo. Os outros arquivos provavelmente seria índices

Como você só precisa os dados, não o índice, basta olhar para os arquivos com repetição de padrões de dados (que muitas vezes se parece com padrões bonitas na tela do editor hex)

Quando você encontrar o arquivo com os dados, tente localizar um registro saber por exemplo "Sr. Smith" e ver se você pode trabalhar com os outros campos. Inteiros são muitas vezes byte a byte, as datas são frequentemente codificados e dias de uma data de início conhecida, o dinheiro poderia estar em BCD

Se você ver um padrão forte, então provavelmente cada registro é um comprimento fixo. Provavelmente haverá um bloco de cabeçalho no arquivo dizer 128 ou 256 bytes, em seguida, os registros de comprimento fixo

Muitos antigo sistema, onde escrito em COBOL. Há uma abundância de informações sobre os formatos de líquidos cobol re, e algumas empresas até mesmo vender controladores ODBC COBOL!

Eu acho que Greg é direito sobre o arquivo .dbf. Você deve tentar encontrar alguma informação sobre outros formatos de arquivo usando sites como o http://filext.com e http://dotwhat.net . O arquivo .bak é normalmente uma cópia de outro arquivo com o mesmo nome, mas outra extensão. Por exemplo, pode haver database.dbf arquivo e database.bak arquivo com backup dele. Você deve perguntar (se é possível) para qualquer código details / documentação / fonte de aplicativo que usou que arquivos de seu cliente.

Para trás nos dias do DOS, os programadores usado para fazer as suas próprias extensões de arquivo praticamente como quisessem. A DBF poderia muito bem ser um arquivo de DBase que é bastante fácil de ler, e o .BAK é provavelmente uma cópia de segurança de um dos outros arquivos importantes, ou apenas uma cópia de segurança deixada por um editor de texto.

Para os arquivos restantes, a primeira coisa que eu faria é verificar se eles estão em um formato ASCII legível por abri-los em um editor de texto.

Se isto não lhe dar um resultado bom, tente abri-los em um editor de binário que mostra lado a lado e hex ASCII com caracteres de controle apagado. Procure repetir padrões que podem corresponder às campos de registro. Por exemplo, dizer o .HIS era algo como um arquivo de ordem histrory, ele pode conter códigos ou nomes de produtos embarcados. Se este for o caso, contar o número de bytes entre tais campos. Se for um número regular, você provavelmente tem um arquivo binário plana de registros. Este é o melhor decodificado abrindo o arquivo no aplicativo, procurando valores em um determinado registro, e procurando os valores correspondentes no arquivo binário. demorado, e uma dor na bunda, mas o suficiente viável quando você pegar o jeito dele.

Happy Hacker!

DBF é um banco de dados dBASE ou início FoxPro.

DAT foi usado por Btrieve, e IIRC Paradox para DOS.

O .dbe e .00x arquivos são provavelmente ou arquivos temporários ou índices relacionados aos arquivos .DAT.

DBF é fácil. Eles vão abrir com o MS Access ou Excel (pré-2007 versões do Office, de qualquer maneira), ou com o ADO ou ODBC.

Se os arquivos DAT são realmente Btrieve, você está em um mundo de dor. Eles são uma bagunça, mesmo se você pode começar suas mãos sobre a versão correta do dicionário de dados e uma cópia da estrutura Btrieve. (Lembra-se, feito isso, usava o t-shirt antes que eu tenho feito.)

Como já foi sugerido, eu recomendo um editor hexadecimal, se você não pode descobrir o que esses arquivos são e que dbf é provavelmente Dbase.

BAK parece ser um arquivo de backup. Eu estou pensando que * .001, * .002, etc pode ser parte do backup. eles são todos do mesmo tamanho? Talvez o backup foi dividido em pedaços menores para que ele poderia caber em uma mídia removível?

Por fim, tome isso como uma lição de vida. Antes de enviar essa Declaração de Trabalho sobre, se o cliente pede-lhe para importar dados do Sistema A para o sistema B, sempre pedir o esquema de exemplo e dados de amostra e arquivos de amostra. Muita vezes as coisas que parecem simples entregar por ser pesadelos.

Boa sorte!

Certifique-se de usar a data de modificação nos arquivos como pistas, se o .001, .002, etc todos têm carimbos de tempo semelhantes, talvez junto com o .BAK, eles podem ser parte do backup. Também pode haver alguma idade cruft no diretório que você pode (um pouco com segurança) ignorar. Procure .bat e tentar dissecar-los também.

Uma dica, se os arquivos .dbf estão DBase, FoxPro, ou um dos outros produtos que usavam esse formato. Então você pode ser capaz de lê-los usando ODBC. Meu sistema ainda tem o driver ODBC para .dbf (Vista, com o VS 2008 - como ele chegou lá eu teria que caçar para cima, mas eu acho que foi MDAC Microsoft Data Access que colocar isso lá). Assim, você não pode ter um "mundo de unpicking fazer", se o driver ODBC irá ler os arquivos .dbf.

Eu me lembro (com um pouco de confiança de mais de 20 anos atrás DBase III ajustes) que DBase usado .001, .002, ... arquivo para campos de memorando (grande texto).

Boa sorte tentando salvar os dados.

O formato DBF é bastante comum.

Os outros arquivos são intrigantes. Eu estou supondo que ou você está lidando com Btrieve arquivos antigos (maus), ou (espera-se) com os resultados de algum esquema de backup mal concebida onde alguém backup seu banco de dados no mesmo diretório em vez de para o disco rígido em que caso você poderia ignorar estes.

É agora parte da Pervasive, mas eu usei, anos atrás, Dados junção para migrar dados de muitos tipos de arquivos para os outros. Dê uma olhada, a menos que você quer escrever um parser.

.dat também pode ser velhos Clarion 2.1 arquivos ... Ele funciona em uma base ISAM também, com arquivos de chave / index

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top