DBF的文件格式:
????
BDF文件頭的詳細(xì)格式:
?
在文件中的位置 | 內(nèi)容 | 說(shuō)明 |
0 | 1個(gè)字節(jié) | 表示當(dāng)前的版本信息 |
1-3 | 3個(gè)字節(jié) | 表示最近的更新日期,按照YYMMDD格式。 |
4-7 | 1個(gè)32位數(shù) | 文件中的記錄條數(shù)。 |
8-9 | 1個(gè)16位數(shù) | 文件頭中的字節(jié)數(shù)。 |
10-11 | 1個(gè)16位數(shù) | 一條記錄中的字節(jié)長(zhǎng)度。 |
12-13 | 2個(gè)字節(jié) | 保留字節(jié),用于以后添加新的說(shuō)明性信息時(shí)使用,這里用0來(lái)填寫(xiě)。 |
14 | 1個(gè)字節(jié) | 表示未完成的操作。 |
15 | 1個(gè)字節(jié) | dBASE IV編密碼標(biāo)記。 |
16-27 | 12個(gè)字節(jié) | 保留字節(jié),用于多用戶(hù)處理時(shí)使用。 |
28 | 1個(gè)字節(jié) | DBF文件的MDX標(biāo)識(shí)。在創(chuàng)建一個(gè)DBF 表時(shí) ,如果使用了MDX 格式的索引文件,那么 DBF 表的表頭中的這個(gè)字節(jié)就自動(dòng)被設(shè)置了一個(gè)標(biāo)志,當(dāng)你下次試圖重新打開(kāi)這個(gè)DBF表的時(shí)候,數(shù)據(jù)引擎會(huì)自動(dòng)識(shí)別這個(gè)標(biāo)志,如果此標(biāo)志為真,則數(shù)據(jù)引擎將試圖打開(kāi)相應(yīng)的MDX 文件。 |
29 | 1個(gè)字節(jié) | Language driver ID. |
30-31 | 2個(gè)字節(jié) | 保留字節(jié),用于以后添加新的說(shuō)明性信息時(shí)使用,這里用0來(lái)填寫(xiě)。 |
32-X | (n*32)個(gè)字節(jié) | 記錄項(xiàng)信息描述數(shù)組。n表示記錄項(xiàng)的個(gè)數(shù)。這個(gè)數(shù)組的結(jié)構(gòu)在表2.8中有詳細(xì)的解釋。 |
X+1 | 1個(gè)字節(jié) | 作為記錄項(xiàng)終止標(biāo)識(shí)。 |
DBF文件頭中記錄項(xiàng)的詳細(xì)格式:
?
位置 | 內(nèi)容 | 說(shuō)明 |
0-10 | 11個(gè)字節(jié) | 記錄項(xiàng)名稱(chēng),是ASCII碼值。 |
11 | 1個(gè)字節(jié) | 記錄項(xiàng)的數(shù)據(jù)類(lèi)型,是ASCII碼值。(B、C、D、G、L、M和N,具體的解釋見(jiàn)表2.9)。 |
12-15 | 4個(gè)字節(jié) | 保留字節(jié),用于以后添加新的說(shuō)明性信息時(shí)使用,這里用0來(lái)填寫(xiě)。 |
16 | 1個(gè)字節(jié) | 記錄項(xiàng)長(zhǎng)度,二進(jìn)制型。 |
17 | 1個(gè)字節(jié) | 記錄項(xiàng)的精度,二進(jìn)制型。 |
18-19 | 2個(gè)字節(jié) | 保留字節(jié),用于以后添加新的說(shuō)明性信息時(shí)使用,這里用0來(lái)填寫(xiě)。 |
20 | 1個(gè)字節(jié) | 工作區(qū)ID。 |
21-30 | 10個(gè)字節(jié) | 保留字節(jié),用于以后添加新的說(shuō)明性信息時(shí)使用,這里用0來(lái)填寫(xiě)。 |
31 | 1個(gè)字節(jié) | MDX標(biāo)識(shí)。如果存在一個(gè)MDX 格式的索引文件,那么這個(gè)記錄項(xiàng)為真,否則為空。 |
? DBF文件中的數(shù)據(jù)類(lèi)型:
代碼 | 數(shù)據(jù)類(lèi)型 | 允許輸入的數(shù)據(jù) |
B | 二進(jìn)制型 | 各種字符。 |
C | 字符型 | 各種字符。 |
D | 日期型 | 用于區(qū)分年、月、日的數(shù)字和一個(gè)字符,內(nèi)部存儲(chǔ)按照YYYYMMDD格式。 |
G | (General or OLE) | 各種字符。 |
N | 數(shù)值型(Numeric) | - . 0 1 2 3 4 5 6 7 8 9 |
L | 邏輯型(Logical) | ? Y y N n T t F f (? 表示沒(méi)有初始化)。 |
M | (Memo) | 各種字符。 |
舉例說(shuō)明:
假如文件中有10條記錄,每個(gè)記錄有4個(gè)字段,4個(gè)字段的長(zhǎng)度分別為:12、14、16、18,那么文件的詳細(xì)格式如下:
文件頭占32+32*4+2個(gè)字節(jié):
前32個(gè)字節(jié)是文件頭中的基本信息,32*4個(gè)字節(jié)是記錄項(xiàng)(即字段的定義信息),最后兩個(gè)字節(jié)分別是16進(jìn)制的0D 和20,0D代表上文表格中說(shuō)明的記錄項(xiàng)終止標(biāo)識(shí)。20代表一個(gè)空格。
數(shù)據(jù)信息占(12+14+16+18)*10+1個(gè)字節(jié):
12+14+16+18個(gè)字節(jié)代表一條記錄,共10條記錄。最后一個(gè)字節(jié)是數(shù)據(jù)的終止表示通常是16進(jìn)制表示的1A
補(bǔ)充說(shuō)明:
由于上述文件格式的定義,決定了字段名稱(chēng)不能超過(guò)11個(gè)字節(jié)(或者5個(gè)中文字符),字符類(lèi)型的字段,數(shù)據(jù)最大不能超過(guò)255個(gè)字節(jié)。在從文本、Excel、大型數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)到DBF格式文件時(shí),一定要考慮到這些長(zhǎng)度限制。?
posted on 2007-12-14 11:34
Kevin Jiang 閱讀(15608)
評(píng)論(6) 編輯 收藏 所屬分類(lèi):
暫不分類(lèi)