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

文件操作

开发平台:

C/C++

  1. #include "stdafx.h"
  2. #include "MapField.h"
  3. #include "MapTableDesc.h"
  4. CMapTableDesc::CMapTableDesc()
  5. {
  6. }
  7. CMapTableDesc::CMapTableDesc(CMapTableDesc& tblDesc)
  8. {
  9.    int i,iCount;
  10.    FIELD_ELEMENT *pField,*pSource;
  11.    
  12.    iCount = tblDesc.GetFieldCount()  - 1;
  13.    for ( i = 0 ; i <= iCount ; i++ )
  14.    { 
  15. pField = new  FIELD_ELEMENT;
  16. pSource = tblDesc.GetDesc(i); 
  17.         strcpy(pField->szFieldName,pSource->szFieldName);
  18. pField->cFieldType = pSource->cFieldType; 
  19. pField->ucFieldDecimal = pSource->ucFieldDecimal;
  20. pField->ucFieldLength = pSource->ucFieldLength;
  21. pField->ulOffset = pSource->ulOffset;
  22. pField->cProductionIndex = pSource->cProductionIndex;
  23. pField->dbaseiv_id = pSource->dbaseiv_id;
  24. strcpy(pField->reserved1 , pField->reserved1);
  25. strcpy(pField->reserved2 , pField->reserved2);
  26. m_fieldsDesc.Add(pField); 
  27.    }
  28. }
  29. CMapTableDesc::~CMapTableDesc()
  30. {
  31. Clear();  
  32. }
  33. short CMapTableDesc::GetFieldCount()
  34. {
  35. return m_fieldsDesc.GetSize(); 
  36. }
  37. void CMapTableDesc::SetFieldCount(short sCount)
  38. {
  39. }
  40. CString CMapTableDesc::GetFieldName(short sIndex)
  41. {
  42. int iCount;
  43. FIELD_ELEMENT *pField;
  44. iCount = m_fieldsDesc.GetSize()  - 1;
  45. if ( sIndex < 0 || sIndex > iCount )
  46. return _T("");
  47.     pField = m_fieldsDesc.GetAt(sIndex);
  48. CString csName(pField->szFieldName); 
  49. return csName; 
  50. }
  51. void CMapTableDesc::SetFieldName(short sIndex, LPCTSTR lpszNewValue)
  52. {
  53. int iCount;
  54. FIELD_ELEMENT* pField;
  55. iCount = m_fieldsDesc.GetSize() - 1;
  56. if ( sIndex < 0 || sIndex > iCount )
  57. return ;
  58.     pField = m_fieldsDesc.GetAt(sIndex);
  59. strcpy(pField->szFieldName , lpszNewValue); 
  60. }
  61. long CMapTableDesc::GetFieldType(short sIndex)
  62. {
  63. int iCount;
  64. FIELD_ELEMENT* pField;
  65. iCount = m_fieldsDesc.GetSize()  - 1;
  66. if ( sIndex < 0 || sIndex > iCount )
  67. return INVALID_VALUE;
  68.     pField = m_fieldsDesc.GetAt(sIndex);
  69. return pField->cFieldType; 
  70. }
  71. void CMapTableDesc::SetFieldType(short sIndex, long nNewValue)
  72. {
  73. int iCount;
  74. FIELD_ELEMENT* pField;
  75. iCount = m_fieldsDesc.GetSize() - 1;
  76. if ( sIndex < 0 || sIndex > iCount )
  77. return;
  78.     pField = m_fieldsDesc.GetAt(sIndex);
  79. pField->cFieldType  = (unsigned char )nNewValue; 
  80. }
  81. short CMapTableDesc::GetFieldPrecision(short sIndex)
  82. {
  83. int iCount;
  84. FIELD_ELEMENT* pField;
  85. iCount = m_fieldsDesc.GetSize() - 1;
  86. if ( sIndex < 0 || sIndex > iCount )
  87. return INVALID_VALUE;
  88.     pField = m_fieldsDesc.GetAt(sIndex);
  89. return pField->ucFieldDecimal; 
  90. }
  91. void CMapTableDesc::SetFieldPrecision(short sIndex, short nNewValue)
  92. {
  93.     int iCount;
  94. FIELD_ELEMENT* pField;
  95. iCount = m_fieldsDesc.GetSize() - 1;
  96. if ( sIndex < 0 || sIndex > iCount )
  97. return;
  98.     pField = m_fieldsDesc.GetAt(sIndex);
  99. pField->ucFieldDecimal  = (unsigned char)nNewValue; 
  100. }
  101. short CMapTableDesc::GetFieldLength(short sIndex)
  102. {
  103. int iCount;
  104. FIELD_ELEMENT* pField;
  105. iCount = m_fieldsDesc.GetSize() - 1;
  106. if ( sIndex < 0 || sIndex > iCount )
  107. return INVALID_VALUE;
  108.     pField = m_fieldsDesc.GetAt(sIndex);
  109. return pField->ucFieldLength; 
  110. }
  111. void CMapTableDesc::SetFieldLength(short sIndex, short nNewValue)
  112. {
  113.     int iCount;
  114. FIELD_ELEMENT* pField;
  115. iCount = m_fieldsDesc.GetSize() - 1;
  116. if ( sIndex < 0 || sIndex > iCount )
  117. return;
  118.     pField = m_fieldsDesc.GetAt(sIndex);
  119. pField->ucFieldLength  = (unsigned char)nNewValue; 
  120. }
  121. /*short CMapTableDesc::GetFieldScale(short sIndex)
  122. {
  123. int iCount;
  124. FIELD_ELEMENT* pField;
  125. iCount = m_fieldsDesc.GetSize() - 1;
  126. if ( sIndex < 0 || sIndex > iCount )
  127. return INVALID_VALUE;
  128.     pField = m_fieldsDesc.GetAt(sIndex);
  129. return pField->sfdScale; 
  130. }
  131. void CMapTableDesc::SetFieldScale(short sIndex, short nNewValue)
  132. {
  133. int iCount;
  134. FIELD_ELEMENT* pField;
  135. iCount = m_fieldsDesc.GetSize() - 1;
  136. if ( sIndex < 0 || sIndex > iCount )
  137. return;
  138.     pField = m_fieldsDesc.GetAt(sIndex);
  139. pField->sfdScale  = nNewValue;
  140. }*/
  141. FIELD_ELEMENT* CMapTableDesc::GetDesc(short sIndex)
  142. {
  143. int iCount;
  144. FIELD_ELEMENT*  pDesc = NULL;
  145. iCount = m_fieldsDesc.GetSize()-1;
  146. if ( sIndex < 0 || sIndex > iCount )
  147. return pDesc;
  148.     pDesc = m_fieldsDesc.GetAt(sIndex);
  149. return pDesc;
  150. }
  151. void CMapTableDesc::Add(FIELD_ELEMENT* pfdDesc)
  152. {
  153.     if ( pfdDesc == NULL )
  154. return;
  155. m_fieldsDesc.Add( pfdDesc);
  156. }
  157. void CMapTableDesc::Remove(short sIndex)
  158. {
  159. int iCount;
  160. FIELD_ELEMENT* pfdDesc;
  161. iCount = m_fieldsDesc.GetSize()-1;
  162. if ( sIndex < 0 || sIndex > iCount )
  163. return ;
  164. pfdDesc = m_fieldsDesc.GetAt( sIndex );  
  165.     m_fieldsDesc.RemoveAt(sIndex,1);   
  166. delete pfdDesc; 
  167. }
  168. void CMapTableDesc::Insert(short sindex,FIELD_ELEMENT* pfdDesc)
  169. {
  170. int iCount;
  171. iCount = m_fieldsDesc.GetSize()-1;
  172. if ( sindex < 0 || sindex > iCount )
  173. return ;
  174. m_fieldsDesc.InsertAt(sindex,pfdDesc);
  175. }
  176. void CMapTableDesc::Clear()
  177. {
  178.    int i,iCount;
  179.    FIELD_ELEMENT *pfdDesc;
  180.    
  181.    iCount = m_fieldsDesc.GetSize() - 1;
  182.    for ( i = iCount ; i >= 0   ; i-- )
  183.    {
  184. pfdDesc = m_fieldsDesc.GetAt(i);
  185. delete pfdDesc;
  186.    } 
  187.    m_fieldsDesc.RemoveAll(); 
  188. }