Transfer.h
上传用户:bjslfz
上传日期:2022-07-25
资源大小:4430k
文件大小:3k
源码类别:

文件操作

开发平台:

C/C++

  1. /************************************************************
  2.   文件名: Transfer.h
  3.   
  4.   作者:   谢婧       Version : 1.0          Date: 2008/05/26
  5.   
  6.   类描述: 是系统的核心部分,实现从shp格式的三个文件中读取有
  7.   效数据到vct格式文件中的功能,从而实现了shp格式到vct格式的
  8.   数据转换
  9.   
  10.   邮件地址:xiejing0707@163.com
  11. ***********************************************************/
  12. #include "Vct.h"
  13. #include "shpFile.h"
  14. //////////////////////////////////////////////////////////////////////
  15. #if !defined(AFX_TRANSFER_H__A7774916_9701_4498_9ACB_8AE173CE9A87__INCLUDED_)
  16. #define AFX_TRANSFER_H__A7774916_9701_4498_9ACB_8AE173CE9A87__INCLUDED_
  17. #if _MSC_VER > 1000
  18. #pragma once
  19. #endif // _MSC_VER > 1000
  20. /************************************************************************/
  21. /* modify by xiejing 2008-6-5                                           */
  22. /************************************************************************/
  23. extern CString csSourseFileName; //保存源文件的文件名
  24. class CTransfer  
  25. {
  26. public:
  27. CTransfer(CString source,CString target);
  28. virtual ~CTransfer();
  29. int GetShang(int dividend, int divisor); // 求商
  30.     BOOL ReadDBF(CString& csFileName);
  31. BOOL ReadRecord();
  32. int SetRecordPos( int iRecord );
  33. BOOL GetRecordHeader(SHPRECORDHEADER& varHeader );
  34. BOOL GetShpInfo(SHPINFO& varInfo);
  35. int ReadPoint(char* pszBuffer,int& iLength,BOOL& bEof);
  36. BOOL SHP2VCT(CString& sourceFileName,CString& targetFileName);
  37. BOOL WriteVctData(CString& csFileName);
  38. void WriteVctFileHead(FILE *pfile);
  39. void WriteVctAttribute(FILE* pfile);
  40. void WriteVctAnnotation(FILE* pfile);
  41. void WriteVctPolygon(FILE* pfile);
  42. void WriteVctLine(FILE* pfile);
  43. void WriteVctPoint(FILE* pfile);
  44. void WriteVctGraphy(FILE *pfile);
  45. void WriteVctTableStructure(FILE* pfile);
  46. void WriteVctFeature(FILE* pfile);
  47. private:
  48. void AttributeTransfer();
  49. void GraphyDatatransfer();
  50. void TableStructureTransfer();
  51. CString m_strFileName;
  52. void DataTransfer();
  53. BOOL InitVctData(CString& csFileName);
  54. BOOL m_bVctOpen;
  55. BOOL m_bShpOpen;
  56. BOOL m_bShxOpen;
  57. //CStdioFile m_sourceFile;
  58. //CStdioFile m_targetFile;
  59. VCTFileHead m_VctFilehead;
  60.     VCTFeature *m_pVctFeature;
  61. VCTTableStructure *m_pVctTblStruct;
  62. VCTPointData *m_pVctPointData;
  63.     VCTLineData *m_pVctLineData;
  64.     VCTPolygonData* m_pVctPolygon;
  65. VCTAnnotation *m_pVctAnnotation;
  66. VCTAttribute *m_pVctAttribute;
  67. BOOL m_bBigEndian; 
  68. CMapRectangle m_Extent;
  69. CMapRecordSet *m_pRecordSet;
  70. int m_shpFileLength;
  71. int m_shxFileLength;
  72. int m_iRecordCount;
  73. int m_shpType;
  74. // CMapRectangle m_CurMapExtent;
  75. CObList m_ObList;
  76. CFile m_fShp,m_fShx;
  77. FILE* m_pVctFile;
  78. };
  79. #endif // !defined(AFX_TRANSFER_H__A7774916_9701_4498_9ACB_8AE173CE9A87__INCLUDED_)