⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbcreadmifdata.h

📁 读取MapInfo的交换格式的MifMid文件
💻 H
字号:
// DBCReadMifData.h: interface for the DBCReadMifData class.
//
//////////////////////////////////////////////////////////////////////
#ifndef DBCREADMIFDATA_H
#define DBCREADMIFDATA_H

#include "stdio.h"
#define MAX_FILE_NAME 100

class DBCReadMifData
{

public:
		DBCReadMifData(char* chFileName);
		DBCReadMifData();
		virtual ~DBCReadMifData();


		bool Init();
		bool ReadMifData();

private:

	struct CoordSys
	{
		unsigned short uiProjectionType;
		unsigned short uiDatum;
		char chUnitName[20];
		float fOrigin_Longitude;
		float fOrigin_Latitude;
		float fStandard_parallel_1;
		float fStandard_parallel_2;
		float fAzimuth;
		float fScale_factor;
		float fRange;
		float fminX;
		float fminY;
		float fmaxX;
		float fmaxY;
		char chPaperunitname[20];
		char chTablename[20];
		unsigned short uiWindow_id;
		unsigned TransformXmult;
		unsigned TransformYmult;
		unsigned TransformXDisp;
		unsigned TransformYDisp;
	};

	struct Column
	{
		char chColumnName[50];
		unsigned short uiColumnType;
		unsigned short uiLength;
	};

	struct Columns
	{
		unsigned short uiColumnCount;
		Column *pRec_Columns;

	};

	struct FileHeader
	{
		unsigned short MapInfoVersion;     //制图软体MapInfo版本号
		char* strDataCharSet;              //数据文字类型,最大长度固定为100
		char* strDataDelimiter;            //数据Attribute间隔方式,最大长度固定为20
		unsigned short uiDataUniqueColCount; //主属性列的个数
		unsigned short *uiDataUniqueCol;      //主属性列号(Key Attribute)
		unsigned short uiDataIndexColCount;  //参与索引的列个数
		unsigned short *uiDataIndexCol;       //参与索引的列号(Key Attribute)
		CoordSys CoordSys;
		char* strCoordSys;
		Columns Columns;
	};

	enum HeaderDataType{
		VERSION=1,//version
		CHARSET=2,//charset
		DELIMITER=3,//Delimiter
		UNIQUE=4,//unique
		INDEX=5,//Index
		COORDSYS=6,//CoordSys
		TRANSFORM=7,//Transform
		COLUMNS=8,//Columns
		DATA=9//Data	
	};

private:
	char* m_strDataFileName;             //地图数据文件名称,最大长度固定为MAX_FILE_NAME
	FileHeader m_FileHeader;          //文件头 地图config信息
	FILE* m_pfile;
	int m_iHeaderDataLen;
	
private:
	bool ReadFileHeader();
	int findPosInCstring(char* pstrData,int iLen,char* pDataSegment,int iLenSegment);
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -