我打開一個DBF作爲VB.Net中的二進制文件來確定結構。我必須這樣做,因爲使用Visual FoxPro OLEDB驅動程序不會返回小數位字段的精度和小數位數。我順利地完成了我的任務,沒有任何問題。我遇到的問題是這樣的:在VB.Net中讀取DBF文件結構爲二進制文件
字節0是DBF文件類型。
字節1-3是最後更新(yymmdd)。
DBF文件的字節4-7是文件中的記錄數。
字節8-9是第一個數據記錄的位置。
字節10-11是一條數據記錄的長度,包括刪除標誌。
(該信息來自http://www.dbf2002.com/dbf-file-format.html)
以下是前32個字節我的DBF文件的,由連字符分隔:
48-13-2-6-158-0-0-0-168 -9-18-3-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-3-0-0
「48」(十六進制30)表示Visual Foxpro
字節1-3表示該文件最後更新於2/6/2013。
字節4-7表示該文件有158條記錄。
所有這些都是正確的。
字節8-9是168和9,以及字節10-11是18和3
實際記錄大小爲786個字節。由於有68個字段,第一個數據記錄的位置應該是(68x32 + 31)= 2207.
是否有一些轉換我必須將1689轉換爲2207和183轉換爲786?
我試過十六進制十六進制,反之亦然。
這樣做了!爲什麼這對其他值沒有必要? – Richard 2013-04-04 01:47:47
@Richard,可能是因爲最大字段數的偏移量會超過255個字節,但是具有低/ hi順序的2個字節將允許多達65535字節的頭(永遠不會發生),所以它們只需要兩個字節的值。 – DRapp 2013-04-04 01:50:53
Got it!謝謝! – Richard 2013-04-04 01:52:58