2009-02-28 44 views
2

上午所有必需的,幫助古老的,未知的存儲系統

我已經走了,並告訴客戶我可以遷移他們的一些舊數據從一個基於DOS系統到新系統,我爲他們開發。然而我說,如果沒有真正查看在舊系統中存儲數據的文件 - 我只是認爲一個快速的谷歌會爲我解決所有問題......我錯了!

無論如何,這個程序有一個文件夾與數百...好800文件與各種文件擴展名,.ave,.bak,.brw,.dat,.001,.002 .... .007 ,.dbf,.dbe和.his。

.Bak顯然不是SQL備份文件。

有沒有人有任何編程經驗使用任何這些文件類型誰可能能指向我的方式來讀取和提取數據的方式?

我不能提及的程序名對於我不認爲原來的開發商會允許這種情況的原因...

感謝。

+0

你能給目錄列表的樣本?知道文件名(例如,名稱相同但擴展名不同)將有所幫助。 – Uri 2009-03-01 06:08:17

回答

8

我敢打賭,.dbf文件在DBase format,這非常簡單。這些內容可能會爲其他人提供線索。

2

我認爲Greg對.dbf文件是正確的。您應該嘗試使用諸如http://filext.comhttp://dotwhat.net之類的站點來查找其他文件格式的一些信息。 .bak文件通常是具有相同名稱的另一個文件的副本,但是是其他擴展名。例如,可能有database.dbf文件和database.bak文件與它的備份。您應該詢問(如果可能的話)從您的客戶那裏使用該文件的應用程序的任何細節/文檔/源代碼。

+0

也試試wotsit.org – Blorgbeard 2009-03-01 05:11:42

1

回到DOS時代,程序員習慣用自己的文件擴展來編寫他們認爲合適的文件。 DBF可能是一個很容易閱讀的DBase文件,而.BAK可能是其他重要文件之一的備份,或者僅僅是文本編輯器留下的備份。

對於其餘的文件,我要做的第一件事是通過在文本編輯器中打開它們來檢查它們是否是可讀的ASCII格式。

如果這樣不能給你一個好的結果,可以嘗試在一個二進制編輯器中打開它們,該編輯器顯示並排的十六進制和ASCII碼,控制字符被清空。尋找可能對應於記錄字段的重複模式。例如,說.HIS就像一個訂單文件,它可能包含嵌入的產品代碼或名稱。如果是這種情況,請計算這些字段之間的字節數。如果它是一個常規數字,那麼您可能有一個平面的記錄二進制文件。這可以通過在應用程序中打開文件,在給定記錄中查找值以及在二進制文件中搜索相應的值來解碼。耗時,屁股疼痛,但一旦你掌握了它就可以工作。

快樂黑客!

3

可能是任何東西。最好的辦法是用hex editor打開,看看你能看到什麼

大多數舊系統使用基本的ISAM,每個表有一個文件包含一組固定長度的數據記錄。其他文件很可能是指數

因爲你只需要的數據,而不是索引,只是看文件具有重複數據模式(通常看起來像十六進制編輯器屏幕上好看的圖案)

當你找到與數據的文件,嘗試找到一個知道記錄,例如「史密斯先生」,看看你是否可以制定其他領域。整數常常是按字節,日期通常編碼,並從已知的開始日期天,錢可能是BCD

如果你看到一個強勢的格局,那麼最有可能的每個記錄是一個固定長度。有可能會是在文件頭塊說128個或256字節,然後固定長度的記錄

其中COBOL編寫的許多舊系統。有很多關於net re cobol格式的信息,有些公司甚至銷售COBOL ODBC驅動程序!

5

unix'文件'實用程序可用於通過它們的「幻數」識別許多文件類型。它檢查文件的內容並將其與數千種已知格式進行比較。如果這些文件採用任何通用格式,這可能會爲您節省大量工作。

如果它們不是通用格式,它可能會發送給您追逐紅鯡魚。就其建議而言,建議。

3

作爲對GregDmitriy建議的網站的補充,還有http://www.wotsit.org(「它的格式是什麼?」)文件格式的存儲庫。

如果沒有幫助,有良好的十六進制編輯器(與轉儲顯示)是你的朋友......我總是發現它驚人的是多麼易於閱讀和識別多種文件格式。

0

正如其他人的建議,我建議一個十六進制編輯器,如果你不能找出這些文件和DBF可能是DBASE。

BAK似乎是一個備份文件。我認爲* .001,* .002等可能是備份的一部分。他們都是一樣的大小?也許備份被分解成更小的部分,以便它可以適合可移動媒體?

最後,將此作爲人生的一課。在發送該工作說明書之前,如果客戶要求您將數據從系統A導入系統B,則始終要求提供樣本架構和樣本數據以及樣本文件。很多時候,事情似乎直截了當地成爲噩夢。

祝你好運!

0

一定要使用修改日期的文件爲線索,如果.001,.002等都有類似的時間戳,與.BAK一起,也許,他們可能是備份的一部分。在目錄中也可能有一些舊版本(可以安全地忽略)。尋找.BAT文件並嘗試解析它們。

1

.DBF是dBASE或早期的FoxPro數據庫。

.DAT被Btrieve和IIRC Paradox用於DOS。

的.DBE和.00x文件可能涉及到.DAT文件的臨時或索引文件。

.DBF很簡單。他們將使用MS Access或Excel(2007年以前的Office版本)或ADO或ODBC打開。

如果。DAT文件確實是Btrieve,你處於一個受到傷害的世界。即使您可以掌握正確版本的數據字典和Btrieve結構的副本,它們也是一團糟。 (在那裏,做完了,在完成之前就穿上了T恤。)

+0

你可以用excel 2007打開dbf文件,它只是沒有在支持的格式中列出 – Tim 2009-07-11 16:21:42

0

一個提示,如果.dbf文件是DBase,FoxPro或使用該格式的其他產品之一。然後你可以使用ODBC讀取它們。我的系統仍然具有用於.dbf的ODBC驅動程序(Vista,VS 2008--它是如何到達那裏的,我不得不尋找它,但我猜這是MDAC微軟數據訪問)。因此,如果ODBC驅動程序將讀取.dbf文件,那麼您可能沒有「拔掉的世界」。

我似乎還記得(在20年前DBase III修補程序的一點信心),DBase使用.001,0.002 ...備忘錄(大文本)字段的文件。

祝你好運,試圖挽救數據。

0

DBF格式相當普遍。

其他文件令人費解。 我猜你要麼處理舊的BTrieve文件(壞),要麼(有希望)使用某些構思不良的備份方案的結果,其中有人將他的數據庫備份到相同的目錄而不是硬盤中哪種情況下你可以忽略這些。

0

它現在是Pervasive的一部分,但我在很多年前使用Data Junction將數據從多種文件類型遷移到其他文件類型。看看,除非你想寫一個解析器。

0

的.dat也可以是舊的號角2.1文件...它的工作原理的ISAM的基礎上也與鍵/索引文件