2009-11-13 4 views
3

aujourd'hui J'ai reçu une copie d'un ancien système à partir duquel j'ai besoin d'importer des données. Le système est écrit en C et s'exécute sous DOS. Il utilise une sorte de base de données. Le format du fichier semble plutôt simple (1 fichier = 1 table, l'en-tête contient une description et ensuite les enregistrements, les champs sont délimités par 0 caractère ASCII, mais ce n'est pas aussi simple que cela semble).DOS Database - aide nécessaire pour reconnaître ce que c'est

La question est: comment reconnaître quelle base de données est utilisée?

Existe-t-il un logiciel qui ouvre peut-être plusieurs formats?

Ou est-ce qu'il y a un logiciel qui pourrait m'aider?

Ou des liens vers des sites décrivant des bases de données DOS?

Ou tout ce qui peut aider sera apprécié :)

PS> je peux poster des petits fichiers de la db si quelqu'un veut essayer de deviner.

Un petit fichier db:

http://www.2shared.com/file/9137583/f840f261/WCENNIK.html

+3

La première douzaine ou deux octets du fichier me diraient si je peux l'identifier. Mais il n'y a pas tellement de choses que ça pourrait être. – wallyk

+2

Quelle est l'extension? Quelle est la nature du système qui l'utilise? avez-vous le code source de votre système qui est écrit en C? avez-vous regardé dans la source pour la partie qui ouvre le fichier de base de données? – Breton

+0

@ kubal5003, je rejoins wallyk en suggérant que publier seulement les 48 ou 80 premiers octets ici sur SO (comme une image hexadécimale, comme dans "F0 12 34 B1 ..."), augmenterait considérablement les chances de quelqu'un identifiant le format (ou même pour indiquer les formats, cela n'appartient pas aussi, et donc aider à élaguer votre recherche) – mjv

Répondre

1

La plupart de ces anciennes applications de fichiers plats utilisés formats propriétaires (c.-à-non standard). Si la base de données est un format standard, vous devriez voir une sorte d'identifiant proche de l'en-tête qui vous indique ce que c'est.

Si vous ne pouvez pas déterminer le format en inspectant visuellement le fichier dans un éditeur hexadécimal, le mieux est de suivre le code C qui lit chaque enregistrement et d'effectuer une rétro-ingénierie du format.

+0

Je regardais un dumper de fichier dBase que j'ai écrit dans les années 1980. Je m'attendais à voir "DBF" réservé dans l'en-tête quelque part. Il n'y a rien comme ça. Il commence juste avec le numéro de version, puis entre dans l'horodatage de la dernière mise à jour, le nombre d'enregistrements, la longueur d'enregistrement, etc. – wallyk

+0

Ah, dBase. Et doux souvenirs de Paradox ... (frisson) –

2

Presque chaque version d'Unix, y compris linux et Mac OS, dispose d'une commande appelée "fichier" qui reconnaît un large éventail de types de fichiers par leur contenu. Essayez de copier l'un des fichiers de données sur un ordinateur Mac OS ou Linux et d'exécuter

file [filename] 

depuis la ligne de commande.

+0

Cela vaut la peine d'essayer, mais maintenant que je réfléchis, il y avait peu de motifs présents dans les fichiers de cette époque que la commande de fichier pouvait connaître, et encore moins inspecter. Reconnaître un ancien fichier .COM MSDOS de cette manière est presque impossible. Il commence juste avec des instructions-pas d'en-tête, pas de conteneurs-rien. Je crois que l'extension de fichier avait une grande importance pour déclarer le type de fichier dans ces jours. – wallyk

+0

Je vais essayer, mais cela pourrait ne pas aider beaucoup, parce que ces extensions sont probablement en polonais "baz" qui pourrait signifier "baza" == "base de données" et ind - "indeks" == "index" – kubal5003

+0

sur Debian, "fichier" ne le reconnaît pas. – NXT

1

Cela me semble être un fichier dBase. Ils étaient très communs. Il n'est pas nécessaire que DBF apparaisse dans l'en-tête. Voir la description du format ici:

http://www.dbase.com/knowledgebase/int/db7_file_fmt.htm

modifier meilleur lien:

http://www.clicketyclick.dk/databases/xbase/format/

Quelle est la valeur du premier octet?

Je viens de vérifier certains fichiers DBF que j'ai en main et ils n'ont pas DBF dans l'en-tête.

+0

Pas dBase malheureusement, je le reconnaîtrais tout de suite et c'était ma première pensée. – kubal5003

+0

J'ai enquêté sur le lien que vous avez posté et qui pourrait vraiment l'être. Je pensais à la dBase que je connais de Windows, mais je vois qu'il y avait beaucoup plus que cela. – kubal5003

+1

Je ne pense pas que ce soit dBase. J'ai posté un autre lien ci-dessus c'est mieux. Heureusement, il semble très facile d'écrire un décodeur en C. Conseils: Byte 2 (0x52) ressemble à la longueur de l'enregistrement-2 et je suppose que 0x90 0xAD est le séparateur d'enregistrement. – NXT

0

L'application d'origine est-elle fonctionnelle? Explorez un peu et vous pouvez trouver un moyen d'exporter les données. Une autre chose à essayer est "d'imprimer" les rapports d'application au fichier texte.

+0

S'il vous plaît partager plus de détails. Merci – Saadi

+0

Srsly? C'est un fil d'il y a 8 ans et pour les normes actuelles de SO devrait probablement être effacé de l'existence .. – kubal5003