DBF文件的初步瞭解(一)

      DBF文件格式是一種比較“古老”的數據庫文件格式了。要不是最近項目中需要,筆者恐怕到今天也不曾聽說過DBF文件格式。
作用:DBF數據庫格式是DOS系統中的dBase數據庫和FoxPro數據庫所使用的數據庫格式。如今,如果電腦上沒有安裝這兩款軟件,可以使用Excel打開。
數據結構
1. 數據文件.DBF結構分析 

數據庫文件由頭記錄(header record)和數據記錄(data record)兩個部分組成。頭記錄從文件位置0開始,定義數據庫的結構及其它與數據庫有關的信息;數據記錄緊接在頭記錄後面,包含了字段的實際文本內容。 
1.1. 頭記錄結構描述 
字節00:數據庫文件開始及文件類型標誌,對應值如下: 
0x02   FoxBASE文件,無備註字段 
0x03   FoxBASE+/dBASE   III   PLUS文件,無備註字段 0x30   Visual   FoxPro數據表文件 
0x43   dBASE   IV   SQL表文件,無備註字段 0x63   dBASE   IV   SQL系統文件,無備註字段 
0x83   FoxBASE+/dBASE   III   PLUS文件,有備註字段 0x8B   dBASE   IV文件,有備註字段 
0xCB   dBASE   IV   SQL表文件,有備註字段 0xF5   FoxPro   2.x(或以前版本)文件,有備註字段 0xFB   FoxBASE文件,有備註字段 
字節01-03:最近一次更新的時間(YYMMDD)。 字節04-07:數據庫文件記錄的數目。 
字節08-09:第一個數據記錄的位置,等於頭記錄所佔的長度。 
字節10-11:每個記錄的長度(包括刪除標誌),等於所有字段寬度之和再加1。 字節12-27:保留,爲0x00。 
字節28-29:保留(VFP中已定義爲數據表標誌和代碼頁標誌)。 字節30-31:保留。 
字節32-n:字段子記錄(field   subrecord)。 字節n+1:頭記錄結束標誌0x0D。 
(在VFP中,字節n+2-n+264還包含有.DBC文件路徑的相關信息。) 
1.2. 字段子記錄結構描述 
頭記錄第08-09字節指示了數據記錄的開始位置,每個數據記錄以刪除標誌開始(0x20或0x28),刪除標誌後面是記錄的具體內容。
字段描述信息從文件第32字節開始,每個字段佔32個字節。 
字節00-10:字段名,爲ASCII字符串;字段名長度不足10個字符時,以空字符(0x00)填充。 
字節11:字段類型,以大寫字母的ASCII碼形式存儲。 
字節12-15:該字段在數據記錄中的偏移值(displacement),等於該字段爲止所有字段寬度之和;第一個字段爲1(即刪除標誌所佔的一個字節),其它字段該值等於上一字段的值加上本字段的寬度。 字節16:本字段的寬度(字節數)。 
字節17:數字型、浮點型、雙精度型字段的小數位寬度。 字節18-31:保留。(字節18在VFP中已被定義爲字段標誌) 
1.3. 數據記錄內容 
除Genral、Picture等類型的字段以外,其它數據字段的實際體內容都是以ASCII碼文本形式存儲的,如數字型的4存儲爲0x34。 
1.4. 數據庫文件結束標誌 
在所有數據記錄內容之後,是數據庫文件的最後一個字節,即文件結束標誌0x1A。
1.5DBF文件中的數據類型:
代碼 數據類型 允許輸入的數據
C字符型 各種字符。
D日期型 用於區分年、月、日的數字和一個字符,內部存儲按照YYYYMMDD格式。
N數值型(Numeric) - . 0 1 2 3 4 5 6 7 8 9
L邏輯型(Logical) ? Y y N n T t F f (? 表示沒有初始化)。
M(Memo) 各種字符。
I 整型(Integer) 整型數據只用來表示整數,以二進制形式存儲,佔用4個字節。其取值範圍是:-21474836~21474836。

發佈了102 篇原創文章 · 獲贊 15 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章