DBF檔案資料結構例項分析

2021-06-01 06:55:03 字數 1786 閱讀 2302

dbf檔案資料結構例項分析下面以乙個具體例項來分析dbf資料結構:

該**資料為:列1

列21 2

2 43 6

4 85 10

6 12

7 14

8 16

9 18

10 20

用ultraedit開啟該dbf檔案,其內容如下:

現在先分解一下,找出檔案頭,並分析一下檔案頭的內容。首先看第乙個位元組,值為03,這個是16進製制的資料,第乙個位元組表示資料庫型別,值03即0x03,對應foxbase+/dbase iii plus,。然後看第4個位元組到第7個位元組,這一段表示檔案中的記錄條數,即**的行數,其byte值為0a

00 00 00,轉換成int32即為10,即**的行數為10。關於byte陣列轉換成數值型別,其**如下:

///

///

將位元組組轉換成為整型

///

///

位元組陣列

///

public static int32 convertbytestoint32(byte tempbytes)

接著看第8個和第9位元組,其值為61 00,轉換成int16其值即為97,意思就是說檔案頭所佔位元組長度為97,所以檔案頭的範圍就是下面紅色框內:

藍色框為左邊紅色框對應的值,這個僅供參考。下面來仔細分析紅色框中的資料:

前面的第1個位元組到第8個和第9個位元組我們前面都已經分析過了。第10和11個位元組對應值表示一行資料的長度,其值為13 00,轉換為int其值為19,即每行資料佔19個位元組的長度,這個值應該等於接下來定義字段長度之和+1(每行最前面還有乙個16進製制值為20的位元組)。

接下來的從第12個到31個都為保留位元組,可以不管。因為前面已知檔案頭的長,為97,而用於檔案頭定義就佔了32個,檔案頭最後乙個位元組用於表示字段定義結束,也佔了乙個,於是就只剩下97-32-1=64,而每定義乙個欄位佔32個位元組,所以就只有2個字段。第乙個欄位就是從第33個位元組開始到第33+32個位元組,如下面黃色框中:

下面參考第三個表來分析這段資料,已知從第0開始到10這11個位元組表示的字段的名稱,將這11個位元組陣列轉換成字串即為欄位名稱。將位元組陣列轉換成字串**如下:

///

///

將位元組組轉換成為字串

///

///

位元組陣列

///

public static string convertbytestostring(byte tempbytes)

將第0到第10個位元組值轉換成字串,其值為「列1」,即第乙個欄位的名稱。

第11個位元組為字段資料型別,該值為4e(上圖中用綠色標出),轉換為char即為n,n表示數值型別,即第一列的資料型別為數值型別。

第12個到第15個為保留位元組,暫不管。第16個位元組表示欄位的長度,其值為09(上圖中用綠色標出),轉換為int其值即為9,即表示該字段長度為9個位元組。後面從第17到31個位元組都可暫不管。這樣就分析完了乙個欄位的定義,安裝同樣的思路分析第二個字段,可以得到第二欄位名稱為「列2」,字段型別也為數值型別(n),字段長度也為9個位元組。如下圖所示,注意綠色框中的資料:

在第二個字段定義完成後,接下來的乙個位元組值為0d,即表示結束了字段定義,剛好在此也是97個位元組。從第98個位元組開始就是**的資料物件了,每行佔19個位元組,其中第乙個位元組值為20,不屬於**單元的值,即從第99個位元組開始,前面9個位元組對應的值為第一行第一列單元的值,接著的9個位元組是第一行第二列單元的值,在接下來的乙個位元組為預設位元組,接著的9個位元組就是第2行第一列單元的值,接下來的9個位元組就是第2行第2列單元的值,依次類推,直到結束位置。

Linux 檔案 資料結構

linux核心使用檔案結構file和檔案表file talbe來管理對檔案的操作訪問。檔案資料結構如下所示 檔案結構 用於在檔案控制代碼與i節點之間建立關係 struct file 這是在記憶體中的i節點結構。前7項與d inode完全一樣。struct m inode 超級塊是儲存對應檔案系統元資...

dbf檔案資料匯入資料庫

在設計介面用fileupload伺服器控制項 後台 public int exportdbf sourcetype dbf sourcedb serverpath exclusive no null no collate machine backgroundfetch no deleted no c...

listlength函式標頭檔案 資料結構標頭檔案

標頭檔案一般由三部分內容組成 1 標頭檔案開頭處的版權和版本宣告 2 預處理塊 3 函式和類結構宣告等。例如 以下將提取標頭檔案 seqlist.h 部分內容進行說明,紫色部分為標頭檔案原文 順序儲存結構標頭檔案 版本 版權 在標頭檔案的開頭進行注釋,以宣告版權和版本 define maxsize ...