Database DOS数据库-识别它是什么所需的帮助

Database DOS数据库-识别它是什么所需的帮助,database,dos,Database,Dos,今天我得到了一个旧系统的副本,我需要从中导入数据。该系统用C语言编写,在DOS下运行。它使用某种数据库。文件格式似乎相当简单(1 file=1表,标题包含一些描述,然后是记录,字段由0 ASCII字符分隔,但并不像看上去那么简单) 问题是:如何识别所使用的数据库 有没有哪种软件可以打开多种格式 或者有什么软件可以帮助我 或任何描述dos数据库的网站链接 或者,只要能帮上忙,我们都会很感激:) PS>如果有人想猜的话,我可以从数据库上传一些小文件 一个小型数据库文件: 大多数较旧的平面文件应用程序

今天我得到了一个旧系统的副本,我需要从中导入数据。该系统用C语言编写,在DOS下运行。它使用某种数据库。文件格式似乎相当简单(1 file=1表,标题包含一些描述,然后是记录,字段由0 ASCII字符分隔,但并不像看上去那么简单)

问题是:如何识别所使用的数据库

有没有哪种软件可以打开多种格式

或者有什么软件可以帮助我

或任何描述dos数据库的网站链接

或者,只要能帮上忙,我们都会很感激:)

PS>如果有人想猜的话,我可以从数据库上传一些小文件

一个小型数据库文件:


大多数较旧的平面文件应用程序使用专有(即非标准)格式。如果db是一种标准格式,您应该在标题附近看到某种标识符,告诉您它是什么


如果无法通过在十六进制编辑器中目视检查文件来确定格式,那么最好的办法是跟踪读取每条记录的C代码,并对格式进行反向工程。

几乎所有版本的Unix(包括linux和Mac OS)都有一个名为“file”的命令,该命令可以根据内容识别大量文件类型。尝试将其中一个数据文件复制到Mac OS或Linux计算机并运行

file [filename]

从命令行。

对我来说听起来像是一个数据库文件。他们很普通。DBF不必出现在标题中。请参见此处的格式说明:

编辑更好的链接

第一个字节的值是多少


我只是仔细检查了手头的一些DBF文件,但它们的头中没有DBF。

原始应用程序是否正常工作?仔细研究一下,您可能会找到导出数据的方法。另一种尝试是将应用程序报告“打印”到文本文件中

文件的前十几个或两个字节会告诉我是否可以识别它。但是它可能没有那么多东西。它的扩展是什么?使用它的系统的性质是什么?您的系统是否有用C编写的源代码?你在源代码中找到打开数据库文件的部分了吗?@kubal5003,我和wallyk一起建议,即使只在这里发布前48或80个字节(作为十六进制转储,如“F0 12 34 B1…”),也会大大增加有人识别格式的机会(或者甚至指出这不属于哪种格式,从而帮助删减您的搜索)@Brenton我没有代码,我只是找到了一些带有源文件名和行号的日志。远离主题,但如果我的孩子没有尖叫,我会全力以赴。很高兴不时看到一个可解决的问题。我在看一个我在20世纪80年代写的dBase文件转储程序。我希望看到“DBF”保留在标题的某个地方。没有这样的东西。它只是从版本号开始,然后进入最后更新时间戳、记录数、记录长度等。啊,数据库。还有悖论的美好记忆…(颤抖)这很值得一试,但现在我想起来了,在那个时代的文件中几乎没有文件命令可以知道的模式,更不用说检查了。用这种方式识别一个旧的MSDOS.COM文件几乎是不可能的。它只是从指令开始,没有头,没有容器,什么都没有。我相信文件扩展名在那些日子里,on对于声明文件类型非常重要。我会尝试一下,但这可能不会有多大帮助,因为这些扩展名可能是用波兰语“baz”,意思可能是“baza”==“database”和ind-“indeks”==“index”在Debian上尝试过,“file”不认识它。我想建议,如果您尝试Unix
file
命令,您也可以尝试
strings
,但是如果文件内容是波兰语,字符串可能类似于随机的辅音序列。(嗯,在我看来就是这样;-)不是dBase不幸的是,我会立即认出它,这是我的第一个想法。我已经调查了你发布的链接,可能真的是这样。我在考虑我从windows知道的dBase,但我看到的远不止这些。我不认为它是dBase。我在上面发布了另一个链接,这更好。幸运的是它是我的用C编写解码器非常容易。提示:字节2(0x52)看起来像记录长度-2,我猜0x90 0xAD是记录分隔符。请分享更多详细信息。感谢?这是8年前的一个线程,按照目前的标准,SO可能会消失。。