![DBF文件結構中文說明_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/41386eaf-70fe-41bb-a2d5-b9fd88719ef1/41386eaf-70fe-41bb-a2d5-b9fd88719ef11.gif)
![DBF文件結構中文說明_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/41386eaf-70fe-41bb-a2d5-b9fd88719ef1/41386eaf-70fe-41bb-a2d5-b9fd88719ef12.gif)
![DBF文件結構中文說明_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/41386eaf-70fe-41bb-a2d5-b9fd88719ef1/41386eaf-70fe-41bb-a2d5-b9fd88719ef13.gif)
![DBF文件結構中文說明_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/41386eaf-70fe-41bb-a2d5-b9fd88719ef1/41386eaf-70fe-41bb-a2d5-b9fd88719ef14.gif)
![DBF文件結構中文說明_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/41386eaf-70fe-41bb-a2d5-b9fd88719ef1/41386eaf-70fe-41bb-a2d5-b9fd88719ef15.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、標準的DBF文件,是由頭文件和實體信息兩部分構成(如圖所示)。1)文件的文件頭其中文件頭部分的長度是不定長的,它主要對DBF文件作了一些總體說明(表), 其中最主要的是對這個 DBF文件的記錄項的信息進行了詳細地描述,比如對每個記錄項的名稱、 數(shù)據(jù)類型、長度等信息都有具體的說明。在文件中 的位置內容說明01個字節(jié)表示當前的版本信息1 33個字節(jié)表示最近的更新日期,按照 YYMMDD格式。4 71個32位數(shù)文件中的記錄條數(shù)。8 91個16位數(shù)文件頭中的字節(jié)數(shù)。10 111個16位數(shù)一條記錄中的字節(jié)長度。12 132個字節(jié)保留字節(jié),用于以后添加新的說明性信息時使用,這里用0來填寫。141個字節(jié)表示
2、未完成的操作。151個字節(jié)dBASE IV編密碼標記。16 2712個字節(jié)保留字節(jié),用于多用戶處理時使用。281個字節(jié)DBF文件的MDX標識。在創(chuàng)建一個 DBF表時,如果使用了 MDX格式的索引文件,那么 DBF表的表頭中的這個字節(jié)就自 動被設置了一個標志,當你下次試圖重新打開這個DBF表的時候,數(shù)據(jù)引擎會自動識別這個標志,如果此標志為真,貝U 數(shù)據(jù)引擎將試圖打開相應的MDX文件。291個字節(jié)Lan guage driver ID.30 312個字節(jié)保留字節(jié),用于以后添加新的說明性信息時使用,這里用0來填寫。32 X(n*32 )個字 節(jié)記錄項信息描述數(shù)組。n表示記錄項的個數(shù)。 這個數(shù)組的結構
3、 在表2.8中有詳細的解釋。X+ 11個字節(jié)作為記錄項終止標識。文件(.dbf )的文件頭位置內容說明0 1011個字節(jié)記錄項名稱,是 ASCII碼值。111個字節(jié)記錄項的數(shù)據(jù)類型,是 ASCII碼值。(B、C、D G L、M和 N,具體的解釋見表 2.9 )。12 154個字節(jié)記錄中該字段的偏移量。161個字節(jié)記錄項長度,二進制型。171個字節(jié)記錄項的精度,二進制型。201個字節(jié)工作區(qū)ID。21 3010個字節(jié)保留字節(jié),用于以后添加新的說明性信息時使用,這里用0來填寫。311個字節(jié)MDX標識。如果存在一個 MDX格式的索引文件,那么這個記 錄項為真,否則為空。記錄項信息描述代碼數(shù)據(jù)類型允許輸
4、入的數(shù)據(jù)B二進制型雙精度型各種字符。C字符型各種字符。D日期型用于區(qū)分年、月、日的數(shù)字和一個字符, 內部存儲按照YYYYMMD格式。G(Ge neralor OLE)通用類型各種字符。N數(shù)值型(Numeric)-.0 1 2 3 4 5 6 7 8 9L邏輯型(Logical )? Y y N n T t F f (?表示沒有初始化)。M(Memo)各種字符。Y貨幣型F浮點型I整形P圖片表2.9 dbf文件中的數(shù)據(jù)類型2)文件的實體信息實體信息部分就是一條條記錄,每條記錄都是由若干個記錄項構成,因此只要依次循環(huán)讀取每條記錄就可以了。3)一個讀取dbf文件的例子假設要讀取一個名為 soil的db
5、f文件(存儲了土地利用信息),它含有 8個記錄項, 記錄項信息如表所示:記錄項名稱數(shù)據(jù)類型長度小數(shù)位數(shù)Area數(shù)值型 ( double )3115Perimeter數(shù)值型(double )3115soils_數(shù)值型(int )110soils_id數(shù)值型(int )110soil_code字符型(character )3無Suit字符型(character )1無Cen troid_x數(shù)值型(double ):3115Cen troid_y數(shù)值型(double )3115dbf文件中的數(shù)據(jù)類型2、行情文件格式說明:(1)、表文件由頭記錄及數(shù)據(jù)記錄組成。頭記錄定義該表的結構及與表相關的其他信息。
6、數(shù)據(jù)記錄緊接在頭記錄之后,包含字段中實際的文本。記錄的長度等于所有字段定義的長度之和 (以字節(jié)為單位)。0x1A )結束。ASCII空格(0x20),則表示該記錄在刪除標記之后是字段記錄中所命(2)、頭記錄以終止符(OxOD )結束,數(shù)據(jù)記錄以終止符(3)、表文件中存儲整數(shù)時低位字節(jié)在前。(4)、數(shù)據(jù)記錄從刪除標記字節(jié)開始。如果刪除標記字節(jié)為未被刪除,如果該字節(jié)為星號(0x2A),則表示該記錄被刪除。名的各字段的數(shù)據(jù)。(5)、數(shù)據(jù)記錄都是用 ASCII碼形式存放的,所以只要讀岀文件頭和字段類型描述區(qū)的內容, 就可以直接讀取 dbf文件中的每條記錄。文件頭部結構(32字節(jié))位置長度含義備注01文
7、件類型0x03,F(xiàn)oxBASE+/dBASE HI PLUS ,無備注1 - 33最近一次更新的時間( YYMMDD )4 - 74文件中的記錄數(shù)目8 - 92文件中的第一個數(shù)據(jù)記錄的位置10 - 112每個數(shù)據(jù)記錄的長度(包括刪除標記)12 - 3120保留32 - n 字段子記錄字段的數(shù)目決定了字段子記錄的數(shù)目。字段記錄結構(32字節(jié))位置長度說明備注0 - 1011字段名最多10個字符,若少于10則用空字符填11 1字段類型C-字符型Y-貨幣型N-數(shù)值型F-浮點型D-日期型T-日期時間型B-雙精度型I-整型L-邏輯型M-備注型G-通用型C-字符型(二進制)M-備注型(二進制)P-圖片型1
8、2 - 154記錄中該字段的偏移量(16進制)16 1字段長度以字節(jié)為單位17 1小數(shù)位數(shù)以字節(jié)為單位18 -3114保留n+1頭記錄終止符(OxOD ),n+2到n+264此范圍內的263個字節(jié)包含后鏈信息(相關數(shù)據(jù)庫(.dbc)的相對路徑)。如果第一個字節(jié)為0x00,則該文件不與數(shù)據(jù)庫關聯(lián)。因此數(shù)據(jù)庫文件本身總是包含0x00。數(shù)據(jù)記錄從除標記字節(jié)開始。如果此字節(jié)為ASCII空格(0x20),該記錄沒有刪除標記,如果第一字節(jié)為星號(0x2A),該記錄有刪除標記。在標記之后是字段記錄中所命名各字段中的數(shù)據(jù)F面是讀取這個dbf文件的代碼:void On ReadDbf(CStri ng Dbf)
9、FILE* m_Dbf;*Dbf文件指針I(yè)I打開dbf文件if(m_Dbf(Dbf,"rb")=NULL)return;int i,j;/* 讀取dbf文件的文件頭開始BYTE versio n;fread(&versio n,1,1,m_Dbf);BYTE date3;for(i=0;i<3;i+)1,1,m_Dbf);fread(date+i,fread(&RecordByteNum,sizeof(short), 1,m_Dbf);int RecordNum;fread(&RecordNum,short HeaderByteNum;/*si
10、zeof( in t),1,i_Dbf);fread(&HeaderByteNum,sizeof(short), 1,m_Dbf);short RecordByteNumshort Reservedl;1,m_Dbf);Dbf);_Dbf);m_Dbf);fread(&Reserved1,BYTE Flag4s; fread(&F lag4s,BYTE En crypteFlag; fread(&En crypteFlag,sizeof(short), 1,m_Dbf);sizeof(BYTE),sizeof(BYTE), 1,m_for(i=0;i<3;
11、i+)fread(&Unu sed,BYTE MDXFlag;fread(&MDXFIag,sizeof(BYTE), 1,mBYTE LDriID;fread(&LDrilD,short Reserved2;fread(&Reserved2,sizeof(short), 1,m_Dbf);BYTE n ame11;sizeof( in t),1,mi_Dbf);sizeof(BYTE), 1,BYTE fieldType;int Reserved3;BYTE fieldLength;BYTE decimalCou nt;short Reserved4;BYTE
12、 workID;short Reserved55;BYTE mDXFIag1;int fieldsco unt;fieldscount = (HeaderByteNum - 32) / 32;II讀取記錄項信息-共有8個記錄項 for(i=0;i< HeaderByteNum;i+)bytes11, 1,m_Dbf);bytessizeof(BYTE), 1,m_Dbf);bytes=0;IIFieldName11 fread( name,IIFieldType1 fread( &fieldType, IIReserved34 Reserved3fread(&Reserv
13、ed3, sizeof(i nt),1,m_Dbf);IIFieldLe ngth-1bytesfread( &fieldLe ngth,sizeof(BYTE), 1,m_Dbf);IIDecimalCou nt-1bytesIIReserved42bytesfread(&decimalCou nt,sizeof(BYTE), 1,m_Dbf);Reserved4=0;fread(&Reserved4, sizeof(short),1,m_Dbf);/WorkID1bytes),1,m_Dbf);fread(&worklD,sizeof(BYTEReserve
14、d5-10bytesfor(j=0;j<5;j+)1,m_Dbf);fread(Reserved5+j,sizeof(short),MDXFIag1-1bytes1,m_Dbf);fread(&mDXFIag1,sizeof(BYTE),BYTE termi nator;fread(&termi nator,sizeof(BYTE), 1,m_Dbf);/讀取dbf文件頭結束double Area,Perimeter,Ce ntroid_y,Ce ntroid_x;int Soils_,Soils_id;CStri ng Soil_code,suit;BYTE delet
15、eFlag;char media31;/讀取dbf文件記錄 開始for(i=0;i<RecordNum;i+)fread(&deleteFlag,sizeof(BYTE), 1,m_Dbf);1,m_Dbf);1,m_Dbf);/ 讀取 Area doublefor(j=0;j<31;j+)fread(media+j, sizeof(char),1,m_Dbf);Area =atof(media);/ 讀取 Perimeter double for(j=0;j<31;j+)fread(media+j, sizeof(char),Perimeter =atof(medi
16、a);/ 讀取 soils_ intfor(j=0;j<31;j+)strcpy(media+j,"");for(j=0;j<11;j+)fread(media+j, sizeof(char),Soils_=atoi(media);/ 讀取 Soils_id intfor(j=0;j<31;j+)strcpy(media+j,"");for(j=0;j<11;j+)fread(media+j, sizeof(char),1,m_Dbf);Soils_id=atoi(media);/ 讀取 soil_code stringfor(j=0;j<31;j+)strcpy(media+j,"");for(j=0;j<3;j+)fread(media+j, sizeof(char),1,m_Dbf);Soil_code=media;/ 讀取 suit stringfor(j=0;j<31;j+)strcpy(media+j,"");for(j=0;j<1;j+)fread(media+j, sizeof(char),1,m_Dbf);suit =media;/ 讀取 Centroid_y doublefor(j=0;j<31;j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子產品物流合同要點分析
- 2025年度辦公室綠植養(yǎng)護與室內環(huán)境美化合同
- 房屋租賃合同公文
- 企業(yè)人才測評及職業(yè)發(fā)展規(guī)劃支持方案設計
- 云計算服務配置與管理手冊
- 解決方案設計與實施指南
- 設計服務合同書
- 企業(yè)信息化解決方案操作手冊
- 建設工程施工分包委托協(xié)議書
- 車床購買合同樣本
- 《招標投標法》考試題庫200題(含答案)
- 春季開學教職工安全培訓
- 心源性休克的護理.ppt課件
- 精品解析:2022年黑龍江省哈爾濱市中考語文試題(原卷版)
- 營業(yè)抄核收業(yè)務知識講座
- 單位事故隱患排查治理制度及臺賬
- 施工組織方案(行車拆除)
- 分公司經營模式
- 上海通用泛亞整車開發(fā)流程
- 《企業(yè)會計準則第15號——建造合同》講解
- 建設項目規(guī)劃批后管理告知書
評論
0/150
提交評論