




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2.2.2 ShaPe files 數(shù)據(jù)說明ShaPe files是ESRl提供的一種矢量數(shù)據(jù)格式,它沒有拓撲信息,一個ShaPe files由一組文件組成,其中必要的基本文件包括坐標文件(.shp )、索引文件(.shx )和屬性文件(.dbf )三個文件。1.坐標文件的結構說明坐標文件(.shp)用于記錄空間坐標信息。它由頭文件和實體信息兩部分構成(如圖2.1所示)。1)坐標文件的文件頭坐標文件的文件頭是一個長度固定(100 bytes)的記錄段,一共有 9個int型和7個double型數(shù)據(jù),主要記錄內容見表2.2。文件頭記錄頭記錄內容記錄頭記錄內容記錄頭記錄內容記錄頭記錄內容記錄頭記錄內
2、容圖2.1坐標文件的結構起始位置名稱數(shù)值類型位序09994In tegerbig4UnUSed0In tegerbig8UnUSed0In tegerbig12UnUSed0In tegerbig16UnUSed0In tegerbig20UnUSed0In tegerbig24文件長度文件的實際長度In tegerbig28版本號1000In tegerLittIe32幾何類型表示這個ShaPefiIe 文件所記錄的空間數(shù)據(jù) 的幾何類型In tegerLittIe36Xmin空間數(shù)據(jù)所占空間范圍的 X方向最小值DoubleLittIe44Ymin空間數(shù)據(jù)所占空間范圍的 Y方向最小值Doubl
3、eLittIe52XmaX空間數(shù)據(jù)所占空間范圍的 X方向最大值DoubleLittIe60YmaX空間數(shù)據(jù)所占空間范圍的 Y方向最大值DoubleLittIe68*Zmin空間數(shù)據(jù)所占空間范圍的 Z方向最小值DoubleLittIe76*ZmaX空間數(shù)據(jù)所占空間范圍的 Z方向最大值DoubleLittIe84*Mmi n最小MeaSUre值DoubleLittIe92*MmaX最大MeaSUre值DoubleLittIe表2.2 ShaPefiIeS頭文件表注:最后4個加星號特別標示的四個數(shù)據(jù)只有當這個ShaPefiIe 文件包含Z方向坐標或者具有 MeaSUre值時才有值,否則為 0.0。所
4、謂MeaSUre值,是用于存儲需要的附加數(shù)據(jù),可以用來記錄各種數(shù)據(jù),例如權 值、道路長度等信息。(1) 位序細心的讀者會注意到表2.2中的數(shù)值的位序有 LittIe 和big的區(qū)別,對于位序是big的數(shù)據(jù)我們在讀取時要小心。通常,數(shù)據(jù)的位序都是LittIe,但在有些情況下可能會是big ,二者的區(qū)別在于它們位序的順序Little 即可。轉換原(ss) 中相反。一個位序為 big 的數(shù)據(jù),如果我們想得到它的真實數(shù)值,需要將它的位序轉換成 理非常簡單,就是交換字節(jié)順序,下面是作者實現(xiàn)的在兩者間進行轉換的程序,代碼如下:/ 位序轉換程序unsigned long OnChange ByteOrder
5、 (int indata)char ss8;char ee8;unsigned long val = unsigned long(indata);_ultoa( val, ss, 16 );/將十六進制的數(shù) (val) 轉到一個字符串int i;int length=strlen(ss);if(length!=8)for(i=0;i<8-length;i+)eei='0'for(i=0;i<length;i+)eei+8-length=ssi; for(i=0;i<8;i+)ssi=eei;/* 進行倒序int t;t=ss0;ss0=ss6;ss6=t;t=
6、ss1;ss1=ss7;ss7=t;=ss2;ss2=ss4;ss4=t;ss3ss5/*=ss3;=ss5;=t;*將存有十六進制數(shù)(Val)的字符串(SS)中的十六進制數(shù)轉成十進制數(shù)int VaIUe=0;for(i=0;i<8;i+)int k;CStri ng mass;mass=ssi;if(ssi='a' |ssi='b' |ssi='c' |ssi='d' |ssi='e' |ssi='f)k=10+ssi-'a'elseSSCa nf(mass,"%d&quo
7、t;, &k);VaIUe=Value+i nt(k*pow(16,7-i);return (value);(2) ShaPefiIe 文件支持的幾何類型(ShaPeTyPe)ShaPefiIe文件所支持的幾何類型如表2.3所示:編號幾何類型0Null ShaPe (表示這個ShaPefiIe 文件不含坐標)1Point (表示ShaPefiIe文件記錄的是點狀目標,但不是多點)3PoIyLine (表示ShaPefiIe 文件記錄的是線狀目標)5Polygon (表示ShaPefiIe 文件記錄的是面狀目標)8MUItiPOint(表示ShaPefiIe 文件記錄的是多點,即點集合)
8、11PointZ (表示ShaPefiIe 文件記錄的是二維點狀目標)13PoIyLineZ (表示ShaPefiIe 文件記錄的是二維線狀目標)15PolygonZ (表示ShaPefiIe 文件記錄的是二維面狀目標)18MUItiPOintZ (表示ShaPefiIe文件記錄的是二維點集合目標)21PointM (表示含有MeaSUre值的點狀目標)23PoIyLineM (表示含有 MeaSUre值的線狀目標)25PolygonM (表示含有MeaSUre值的面狀目標)28MUItiPOintM (表示含有MeaSUre值的多點目標)31MUItiPatCh (表示復合目標)表2.3 S
9、haPefiIeS文件支持的幾何類型對于一個不是記錄NUIl ShaPe 類型的ShaPefiIe 文件,它所記錄的空間目標的幾何類型必須一致,不能在一個ShaPefiIe文件中同時記錄兩種不同類型的幾何目標。讀取坐標文件(.shp )的文件頭的代碼如下:Void OnReadShP ( CString ShP )FILE* m_Shp;/*ShP 文件指針/打開坐標文件if(m_Shp(Shp,"rb")=NULL)return;/讀取坐標文件頭的內容開始int ;int Unu sed;int ;int Version;int ShapeType;double Xmi
10、n;double Ymi n;double Xmax;double Ymax;double Zmin;double Zmax;double Mmin;double Mmax;fread(&, sizeof(int), 1,m_Shp);= OnChange ByteOrder ();for(i=0;i<5;i+)fread(&Unused,sizeof(int), 1,m_Shp);fread(&, sizeof(int), 1,m_Shp);= OnChange ByteOrder ();fread(&Version, fread(&ShapeT
11、ype, fread(&Xmin, fread(&Ymin, fread(&Xmax, fread(&Ymax, fread(&Zmin, fread(&Zmax, fread(&Mmin, fread(&Mmax,sizeof(int), 1,m_Shp)sizeof(int), 1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Sh
12、p);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);sizeof(double),1,m_Shp);/ 讀取坐標文件頭的內容 結束 / 根據(jù)幾何類型讀取實體信息2) 實體信息的內容每一個記錄段記錄一個地理實體目標的坐標信息,實體信息負責記錄坐標信息, 它以記錄段為基本單位,每個記錄段分為記錄頭和記錄內容兩部分。記錄頭的內容包括記錄號( Record Number )和坐標記錄長度 (Content Length) 兩個記錄項。它們的位 序都是 big 。記錄號( Record Number )和坐標記錄長度 (Content Length) 兩
13、個記錄項都是 int 型,并且 shapefile 文件中的記錄號都是從 1 開始的。記錄內容包括目標的幾何類型( ShaPeTyPe)和具體的坐標記錄(X、Y),記錄內容因要素幾何類型的不 同其具體的內容及格式都有所不同。下面分別介紹點狀目標(Point )、線狀目標(PoIyLine )和面狀目標(Polygon )三種幾何類型的.shp文件的記錄內容:點狀目標ShaPefiIe中的點狀目標由一對X、Y坐標構成,坐標值為雙精度型( double )。點狀目標的記錄內容如表 2.4 :記錄項數(shù)值數(shù)據(jù)類型長度個數(shù)位序幾何類型(ShaPeTyPe)1 (表示點狀目標)int型41LittIeX方
14、向坐標X方向坐標值double型81LittIeY方向坐標Y方向坐標值double型81LittIe表2.4點狀目標的記錄內容F面是讀取點狀目標的記錄內容的代碼:On ReadPOi ntShp(CStri ng ShP)/打開坐標文件/讀取坐標文件頭的內容 開始/讀取點狀目標的實體信息int RecordNumber;int Conten tLe ngth;int num=0;while(fread(&RecordNumber,SiZeof( in t),1,Shp)!=0)nu m+;fread(&Con te ntLe ngth,sizeof(i nt),1,Shp);R
15、eCOrdNUmber= OnChange ByteOrder (RecordNumber);ContentLength= OnChange ByteOrder (ContentLength);int ShapeType;double x;double y;fread(&shapeType, SiZeof( in t),1,Shp);fread( &x, SiZeOf(double),1,Shp);fread( &y, SiZeOf(double),1,Shp);線狀目標ShaPefile中的線狀目標是由一系列點坐標串構成,一個線目標可能包括多個子線段,子線段之間可以是
16、相離的,同時子線段之間也可以相交。ShaPefiIe 允許出現(xiàn)多個坐標完全相同的連續(xù)點,當讀取文件時一定要注意這種情況,但是不允許出現(xiàn)某個退化的、長度為O的子線段出現(xiàn)。線狀目標的記錄內容如表2.5 :具體的數(shù)據(jù)結構如下:PoIyLi neDouble4BoxIn tegerNUmPartSIn tegerNUmPOi ntsIn tegerNumPartsPartSPoi ntNumPoi ntsPoi nts/當前線狀目標的坐標范圍/當前線目標所包含的子線段的個數(shù)/當前線目標所包含的頂點個數(shù)/每個子線段的第一個坐標點在Points的位置/記錄所有坐標點的數(shù)組記錄項數(shù)值數(shù)據(jù)類型長度個數(shù)位序幾何
17、類型(ShaPeTyPe)3 (表示線狀目標)int型41LittIe坐標范圍(Box)表示當前線目標的坐 標范圍double型324LittIe子線段個數(shù) (NUmPartS)表示構成當前線目標 的子線段的個數(shù)int型41LittIe坐標點數(shù)(NUmPOints)表示構成當前線目標 所包含的坐標點個數(shù)int型41LittIePartS數(shù)組記錄了每個子線段的 坐標在Points數(shù)組中的起始位置int型4 × NUmPartSNUmPartSLittIePointS數(shù)組記錄了所有的坐標信 息Point 型根據(jù)點個數(shù) 來確定NUmPOi ntsLittIe表2.5線狀目標的記錄內容這些記
18、錄項的具體含義如下:Box記錄了當前的線目標的坐標范圍,它是一個double型的數(shù)組,按照 Xmin、Ymin、Xmax、YmaX的順序記錄了坐標范圍;NUmPartS記錄了當前線目標所包含的子線段的個數(shù);NumPoints 記錄了當前線目標的坐標點總數(shù);Parts 記錄了每個子線段的第一個坐標點在坐標數(shù)組 points 中的位置,以便讀取數(shù)據(jù);PointS是用于存放當前線目標的X Y坐標的數(shù)組。下面是讀取線狀目標的記錄內容的代碼:OnReadLineShp(CString Shp)/ 打開坐標文件/ 讀取坐標文件頭的內容 開始/ 讀取線狀目標的實體信息int RecordNumber;int
19、 ContentLength;int num =0;while(fread(&RecordNumber,Sizeof(int),1,Shp)!=0)fread(&ContentLength,Sizeof(int),1,Shp);RecordNumberContentLength= OnChange ByteOrder (RecordNumber);= OnChangeByteOrder (ContentLength);int ShapeType;double Box4;int NumPartS;int NumPointS;int *PartS;fread(&ShapeT
20、ype,Sizeof(int),1,Shp);/ 讀 Boxfor(i=0;i<4;i+)fread(Box+i,Sizeof(double),1,Shp);/ 讀 NumPartS 和 NumPointSfread(&NumParts,sizeof(int),1,Shp);rtsi;tsi;fread(&NumPoints, sizeof(int), 1,Shp); / 讀 Parts 和 PointsParts=new intNumParts;for(i=0;i<NumParts;i+)fread(Parts+i, sizeof(int),int pointNu
21、m;for(i=0;i<NumParts;i+)if(i!=NumParts-1)pointNumelsepointNumdouble *PointsX;double *PointsY;1,Shp);=Partsi+1-Pa=NumPoints-Parsizeof(double),1,Shp);sizeof(double),1,Shp);PointsX =new doublepointNum;PointsY =new doublepointNum;for(j=0;j<pointNum;j+)fread(PointsX+j,fread(PointsY+j,delete PointsX
22、;delete PointsY;delete Parts;(3) 面狀目標shapefile 中 的面狀目標是由多個子環(huán)構成,每個子環(huán)是由至少四個頂點構成的封閉的、無自相交現(xiàn)象 的環(huán)。 對于含有島的多邊形,構成它的環(huán)有內外環(huán)之分, 每個環(huán)的頂點的排 列順序或者方向說明了這個環(huán)到 底是內環(huán)還是外環(huán)。一個內環(huán)的頂點是按照逆時針順序排列的;而對于外環(huán),它的頂點排列順序是順時針方 向。如果一個多邊形只由 一個環(huán)構成,那么它的頂點排列順序肯定是順時針方向。PolygonDouble4IntegerIntegerIntegerNumParts PartsPointNumPoints Points每條多邊形
23、記錄的數(shù)據(jù)結構與線目標的數(shù)據(jù)結構完全相同,Box / 當前面狀目標的坐標范圍NumParts / 當前面目標所包含的子環(huán)的個數(shù)NumPoints / 構成當前面狀目標的所有頂點的個數(shù)/ 每個子環(huán)的第一個坐標點在 Points 的位置/ 記錄所有坐標點的數(shù)組對于一個 shapefile 中的多邊形,它必須滿足下面三個條件:構成多邊形的每個子環(huán)都必須是閉合的,即每個子環(huán)的第一個頂點跟最后一個頂點是同一個點; 每個子環(huán)在 Points 數(shù)組中的排列順序并不重要, 但每個子環(huán)的頂點必須按照一定的順序連續(xù)排列; 存儲在 shapefile 中的多邊形必須是干凈的。所謂一個干凈的多邊形,它必須滿足兩點:沒
24、有自相交現(xiàn)象。 這就要求任何一個子環(huán)不能跟其它的子環(huán)相交, 共線的現(xiàn) 象也將被當作相 交。但是允許兩個子環(huán)的頂點重合;對于一個不含島的多邊形或者是含島的多邊形的外環(huán), 它們的頂點排列順序必須是順時針方向; 而對于內環(huán),它的排列順序必須是逆時針方向。所謂的“臟多邊形”就是指頂點排列順序為順時 針的內環(huán)。圖 2.2 中的多邊形是一個典型的例子。這個多邊形包括一個島,所有頂點的個數(shù)為8。 NumParts 等于 2,NumPoints 等于 10。請注意內環(huán)(島)的頂點的排列順序是逆時針的(如圖2.3 所示)。v5圖 2.2 帶島的多邊形0055v10v21v32v43v14v55v86v77v6圖
25、2.3帶島的多邊形的坐標記錄面狀目標的記錄內容如表2.6 :記錄項數(shù)值數(shù)據(jù)類型長度個數(shù)位序幾何類型(ShaPeTyPe)5 (表示面狀目標)int型41LittIe坐標范圍(BoX)表示當前面目標的坐標 范圍double型324LittIe子線段個數(shù) (NUmPartS)表示構成當前面狀目標 的子環(huán)的個數(shù)int型41LittIe坐標點數(shù)(NUmPOints)表示構成當前面狀目標 所包含的坐標點個數(shù)int型41LittIePartS數(shù)組記錄了每個子環(huán)的坐標 在Points數(shù)組中的起始位置int型4 × NUmPartSNUmPartSLittIePointS數(shù)組記錄了所有的坐標信息Po
26、int 型根據(jù)點個數(shù) 來確定NUmPOi ntsLittIe表2.6面狀目標的記錄內容F面是讀取面狀目標的記錄內容的代碼:void On ReadAreaShP(CStri ng ShP)/打開坐標文件/讀取坐標文件頭的內容 開始/讀取面狀目標的實體信息int RecordNumber;int Conten tLe ngth;SiZeof( in t),1,m_Shp)!=0)while(fread(&RecordNumber,fread(&ContentLength,sizeof(int),1,m_Shp);RecordNumber= OnChange ByteOrder (
27、RecordNumber);ContentLength= OnChange ByteOrder (ContentLength);int shapeType;double Box4;int NumParts;int NumPoints;int *Parts;fread(&shapeType,sizeof(int),1,m_Shp);i;/ 讀 Boxfor(i=0;i<4;i+)fread(Box+i,sizeof(double),1,m_Shp);/ 讀 NumParts 和 NumPointsfread(&NumParts,sizeof(int),1,m_Shp);fr
28、ead(&NumPoints,sizeof(int),1,m_Shp);/ 讀 Parts 和 PointsParts =new intNumParts;for(i=0;i<NumParts;i+)fread(Parts+i, sizeof(int), 1,m_Shp);int pointNum;int xx;int yy;for(i=0;i<NumParts;i+)if(i!=NumParts-1)pointNum =Partsi+1-Partselse;pointNum=NumPoints-Partsidouble *Poi ntsX;double *Poi ntsY;
29、Poi ntsX =new doublepo in tNum;Poi ntsY =new doublepo in tNum;for(j=0;j<poi ntNum;j+)fread(Poi ntsX+j, SiZeof(double),1,m_Shp);fread(Poi ntsY+j, SiZeOf(double),1,m_Shp);delete Poi ntsX;delete Poi ntsY;delete Parts;2.屬性文件的結構說明(如屬性文件(.dbf)用于記錄屬性信息。它是一個標準的 DBF文件,也是由頭文件和實體信息兩部分構成 圖2.4所示)。圖2.4屬性文件的結構1
30、) 屬性文件的文件頭其中文件頭部分的長度是不定長的,它主要對DBF文件作了一些總體說明(見表 2.7 ),其中最主要的是對這個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é),用于以后添加新的說明性信息時使用,這里用O來填寫。141個字節(jié)表示未完成的操作。151個字節(jié)dBASE IV 編密碼
31、標記。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é),用于以后添加新的說明性信息時使用,這里用O來填寫。32 X(n*32)個字 節(jié)記錄項信息描述數(shù)組。n表示記錄項的個數(shù)。這個數(shù)組的結構 在表2.8中有詳細的解釋。X+ 11個字節(jié)作為記錄
32、項終止標識。表2.7屬性文件(.dbf )的文件頭位置內容說明0 1011個字節(jié)記錄項名稱,是 ASCII碼值。111個字節(jié)記錄項的數(shù)據(jù)類型,是 ASCII碼值。(B C D G L、M和 N,具體的解釋見表 2.9 )。12 154個字節(jié)保留字節(jié),用于以后添加新的說明性信息時使用,這里用0來填寫。161個字節(jié)記錄項長度,二進制型。171個字節(jié)記錄項的精度,二進制型。18 192個字節(jié)保留字節(jié),用于以后添加新的說明性信息時使用,這里用0來填寫。201個字節(jié)工作區(qū)ID。21 3010個字節(jié)保留字節(jié),用于以后添加新的說明性信息時使用,這里用0來填寫。311個字節(jié)MDX標識。如果存在一個 MDX格式
33、的索引文件, 那么這個記 錄項為真,否則為空。表2.8記錄項信息描述代碼數(shù)據(jù)類型允許輸入的數(shù)據(jù)B二進制型各種字符。C字符型各種字符。D日期型用于區(qū)分年、月、日的數(shù)字和一個字符,內部存儲按照 YYYYMMD格式。G(Ge neralOr OLE)各種字符。N數(shù)值型-.0 1 2 3 4 5 6 7 8 9(NUmeriC)L邏輯型(LOgiCaI )? Y y N n T t F f (?表示沒有初始化)。M(MemO)各種字符。表2.9 dbf文件中的數(shù)據(jù)類型2)屬性文件的實體信息實體信息部分就是一條條屬性記錄,每條記錄都是由若干個記錄項構成,因此只要依次循環(huán)讀取每條記 錄就可以了。3)一個讀
34、取dbf文件的例子假設要讀取一個名為 Soil的dbf文件(存儲了土地利用信息),它含有8個記錄項,記錄項信息如表2.10所示:記錄項名稱數(shù)據(jù)類型長度小數(shù)位數(shù)Area數(shù)值型(double)3115Perimeter數(shù)值型(double)3115soils數(shù)值型(int)J110soils id數(shù)值型(int):110soil code字符型(CharaCter )3無SUit字符型(CharaCter )1無Cen troid x數(shù)值型(double)3115Cen troid y數(shù)值型(double)3115表2.10 dbf文件中的數(shù)據(jù)類型下面是讀取這個 dbf文件的代碼:void On
35、ReadDbf(CStri ng Dbf)FILE* m_Dbf;/*Dbf文件指針/打開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+)fread(date+i, 1, 1,m_Dbf);int RecordNum;fread(&RecordNum,short HeaderByteNum;/*sizeof(int),1,m_Dbf);fread(&
36、amp;HeaderByteNum,sizeof(short), 1,m_Dbf);short RecordByteNum fread(&RecordByteNum,short Reserved1;sizeof(short), 1,m_Dbf);fread(&Reserved1,sizeof(short), 1,m_Dbf);BYTE Flag4s; fread(&Flag4s,BYTE EncrypteFlag; fread(&EncrypteFlag,for(i=0;i<3;i+)fread(&Unused,BYTE MDXFlag;fread
37、(&MDXFlag, sizeof(BYTE),BYTE LDriID; fread(&LDriID,sizeof(BYTE), 1,m_Dbf);sizeof(BYTE), 1,m_Dbf);sizeof(int), 1,m_Dbf);1,m_Dbf);short Reserved2;sizeof(BYTE), 1,m_Dbf);fread(&Reserved2,sizeof(short), 1,m_Dbf);BYTE name11;BYTE fieldType;int Reserved3;BYTE fieldLength;BYTE decimalCount;shor
38、t Reserved4;BYTE workID;short Reserved55;BYTE mDXFlag1;int fieldscount;fieldscount = (HeaderByteNum - 32) / 32;/ 讀取記錄項信息共有 8 個記錄項for(i=0;i< HeaderByteNum;i+)bytes11, 1,m_Dbf);bytessizeof(BYTE), 1,m_Dbf);bytes=0;/FieldName11fread(name,/FieldType1fread(&fieldType,/Reserved34Reserved3fread(&
39、Reserved3, sizeof(int), 1,m_Dbf); /FieldLength-1bytesfread(&fieldLength,sizeof(BYTE), 1,m_Dbf);/DecimalCount-1 bytes fread(&decimalCount,sizeof(BYTE), 1,m_Dbf);/Reserved42 bytesReserved4 =0;fread(&Reserved4, sizeof(short),1,m_Dbf);fread(&workID,sizeof(BYTE), 1,m_Dbf);bytes/WorkID/Res
40、erved510 bytesfor(j=0;j<5;j+)fread(Reserved5+j,sizeof(short), 1,m_Dbf);/MDXFlag11 bytesfread(&mDXFlag1, sizeof(BYTE), 1,m_Dbf);BYTE terminator;fread(&terminator, sizeof(BYTE), 1,m_Dbf);/ 讀取 dbf 文件頭結束double Area,Perimeter,Centroid_y,Centroid_x;int Soils_,Soils_id;CString Soil_code,suit;BYT
41、E deleteFlag;char media31;/ 讀取 dbf 文件記錄 開始for(i=0;i<RecordNum;i+)fread(&deleteFlag, sizeof(BYTE), 1,m_Dbf);/ 讀取 Area doublefor(j=0;j<31;j+)fread(media+j, sizeof(char), 1,m_Dbf);Area =atof(media);/ 讀取 Perimeter doublefor(j=0;j<31;j+)fread(media+j, sizeof(char), 1,m_Dbf);Perimeter =atof(media);/ 讀取 soils_ intfor(j=0;j<31;j+)s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧夏建設職業(yè)技術學院《科技文獻檢索與論文寫作》2023-2024學年第二學期期末試卷
- 租客合同終止租房協(xié)議
- 技術開發(fā)與轉讓合同保密范本
- 智能化系統(tǒng)供貨安裝合同樣本
- 礦山企業(yè)輪換工勞動合同模板及示例
- 農村土地出租權屬合同樣本
- 標準貨物銷售合同簡版
- 城市配送服務合同一覽
- 小學生種花演講課件
- 影視設備行業(yè)交流服務批發(fā)考核試卷
- 大眾汽車使用說明書
- (高清版)DZT 0145-2017 土壤地球化學測量規(guī)程
- 供熱公司安全教育知識
- 高中英語課程綱要
- 《藥物設計學》課件
- 隨機微分方程
- 道路設施施工現(xiàn)場安全管理基本要求
- 公寓樓改造裝修施工方案
- 煙臺大學化學化工學院實驗室儀器設備搬遷項目
- 安全生產管理組織架構圖
- 2022版10kV架空配電線路無人機自主巡檢作業(yè)導則
評論
0/150
提交評論