1.dbf 檔案結構
*dbf 資料表格檔頭記錄的結構
*位元組偏移 說明
*0 檔案類型
*0x02FoxBASE
*0x03FoxBASE+/dBASE III PLUS,無說明
*0x30Visual FoxPro
*0x43dBASE IV SQL 資料表格檔,無說明
*0x63dBASE IV SQL 系統檔案,無說明
*0x83FoxBASE+/dBASE III PLUS,有說明
*0x8BdBASE IV 有說明
*0xCBdBASE IV SQL 資料表格檔,有說明
*0xF5FoxPro 2.x(或更早版本)有說明
*0xFBFoxBASE
*1 !D 3 最近一次更新的時間(YYMMDD)
*4 - 7 檔案中的資料記錄數目
*8 - 9 第一筆資料記錄的位置
*10 - 11 每筆資料記錄的長度(包括刪除記號)
*12 - 27 保留
*28 資料表格的記號
*0x01具有 .cdx 結構的檔案
*0x02檔案包含說明。
*0x04檔案是資料庫(.dbc)
*請注意,這個位元組可以包含任何上面值的和。例如,0x03 表示資料表格具有結構化 .cdx 和一個附註欄位。
*29 字碼頁記號
*30 - 31 保留,包含 0x00
*32 - n 欄位子資料記錄
*欄位的數目決定了欄位子資料記錄的數目。資料表格中每個欄位都對應一個欄位子資料記錄。
*n+1 檔頭記錄終止符(0x0D)
*n+2 到 n+264 此範圍內的 263 個位元組包含歸屬連結資訊(相關資料庫 (.dbc) 的相對路徑)。如果第一個位元組為 0x00,則該檔案不與資料庫關連。因此資料庫檔案本身總是包含 0x00。
*1. 檔頭記錄中的第 8 到第 9 個位元組指示資料檔案中資料的初始位置。資料記錄從刪除記號位元組開始。如果此位元組為 ASCII 空白 (0x20),該資料記錄沒有刪除記號,如果第一位元組為星號 (0x2A),該資料記錄有刪除記號。在記號之後是欄位資料記錄中所命名各欄位中的資料。
*欄位子資料記錄結構
*位元組偏移 說明
*0 - 10 欄位名稱(最多 10 個字元 -若少於 10 則用空字元 (0x00) 填滿)
*11 欄位型態
*C-字元型態
*Y-貨幣型
*N-數值型態
*F-浮點數型態
*D-日期型態
*T-日期時間型態
*B-倍精準數
*I-整數
*L-邏輯型態
*M-附註
*G-通用型態
*C-字元型態(二進位)
*M-附註欄位型態(二進位)
*P-圖片型
*12 - 15 資料記錄中該欄位的位移
*16 欄位長度(以位元組為單位)
*17 小數位數
*18 欄位記號
*0x01系統欄位(對使用者是非可視的)
*0x02可儲存 null 值的欄位
*0x04二進位欄位(只適於字元型態和附註欄位型態)
*19 - 32 保留
*有關對每筆資料記錄中字元的限制以及欄位數目的最大值等詳細內容,請參閱[Visual FoxPro 系統功能]。
*說明
*除非在檔案中加入下列功能,否則 Visual FoxPro 將不修改按 FoxPro 2.X 檔格式儲存的檔案標題:
*支援 null 值
*日期時間型態、貨幣型態及倍精準數資料
*字元欄位和附註欄位記號為二進位
*在資料庫 (.dbc) 檔案中加入資料表格
*秘訣 可以使用下面的公式求出資料表格檔中欄位的數目:(x - 296/32) 公式中,x 表示第一筆資料記錄的位置(資料表格檔頭記錄的第 8 到第 9 個位元組),296 表示 263(歸屬連結資訊)+ 1(檔頭記錄終止符號)+ 32(第一個欄位子資料記錄),32 是欄位子資料記錄的長度
2.找到像以前的dos時代的pctools,一段的一段的觀察,或許你就知道資料如何修復,或者放棄
留言列表