SpString.inl
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:4k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // CSPString
  2. _SPSTRING_INLINE CSPStringData* CSPString::GetData() const
  3. { SP_ASSERT(m_pchData != NULL); return ((CSPStringData*)m_pchData)-1; }
  4. _SPSTRING_INLINE void CSPString::Init()
  5. { m_pchData = afxEmptySPString.m_pchData; }
  6. #ifndef _AFXDLL
  7. _SPSTRING_INLINE CSPString::CSPString()
  8. { m_pchData = afxEmptySPString.m_pchData; }
  9. #endif
  10. _SPSTRING_INLINE CSPString::CSPString(const unsigned char* lpsz)
  11. { Init(); *this = (LPCSTR)lpsz; }
  12. _SPSTRING_INLINE const CSPString& CSPString::operator=(const unsigned char* lpsz)
  13. { *this = (LPCSTR)lpsz; return *this; }
  14. #ifdef _UNICODE
  15. _SPSTRING_INLINE const CSPString& CSPString::operator+=(char ch)
  16. { *this += (TCHAR)ch; return *this; }
  17. _SPSTRING_INLINE const CSPString& CSPString::operator=(char ch)
  18. { *this = (TCHAR)ch; return *this; }
  19. _SPSTRING_INLINE CSPString __stdcall operator+(const CSPString& string, char ch)
  20. { return string + (TCHAR)ch; }
  21. _SPSTRING_INLINE CSPString __stdcall operator+(char ch, const CSPString& string)
  22. { return (TCHAR)ch + string; }
  23. #endif
  24. _SPSTRING_INLINE int CSPString::GetLength() const
  25. { return GetData()->nDataLength; }
  26. _SPSTRING_INLINE int CSPString::GetAllocLength() const
  27. { return GetData()->nAllocLength; }
  28. _SPSTRING_INLINE BOOL CSPString::IsEmpty() const
  29. { return GetData()->nDataLength == 0; }
  30. _SPSTRING_INLINE CSPString::operator LPCTSTR() const
  31. { return m_pchData; }
  32. _SPSTRING_INLINE int PASCAL CSPString::SafeStrlen(LPCTSTR lpsz)
  33. { return (lpsz == NULL) ? 0 : lstrlen(lpsz); }
  34. _SPSTRING_INLINE int CSPString::Compare(const char* psz) const
  35. { return _tcscmp(m_pchData, psz); }
  36. _SPSTRING_INLINE int CSPString::CompareNoCase(const char* psz) const
  37. { return _tcsicmp(m_pchData, psz); }
  38. _SPSTRING_INLINE int CSPString::Collate(const char* psz) const
  39. { return _tcscoll(m_pchData, psz); }
  40. _SPSTRING_INLINE TCHAR CSPString::GetAt(int nIndex) const
  41. {
  42. SP_ASSERT(nIndex >= 0);
  43. SP_ASSERT(nIndex < GetData()->nDataLength);
  44. return m_pchData[nIndex];
  45. }
  46. _SPSTRING_INLINE TCHAR CSPString::operator[](int nIndex) const
  47. {
  48. // same as GetAt
  49. SP_ASSERT(nIndex >= 0);
  50. SP_ASSERT(nIndex < GetData()->nDataLength);
  51. return m_pchData[nIndex];
  52. }
  53. _SPSTRING_INLINE bool __stdcall operator==(const CSPString& s1, const CSPString& s2)
  54. { return s1.Compare(s2) == 0; }
  55. _SPSTRING_INLINE bool __stdcall operator==(const CSPString& s1, LPCTSTR s2)
  56. { return s1.Compare(s2) == 0; }
  57. _SPSTRING_INLINE bool __stdcall operator==(LPCTSTR s1, const CSPString& s2)
  58. { return s2.Compare(s1) == 0; }
  59. _SPSTRING_INLINE bool __stdcall operator!=(const CSPString& s1, const CSPString& s2)
  60. { return s1.Compare(s2) != 0; }
  61. _SPSTRING_INLINE bool __stdcall operator!=(const CSPString& s1, LPCTSTR s2)
  62. { return s1.Compare(s2) != 0; }
  63. _SPSTRING_INLINE bool __stdcall operator!=(LPCTSTR s1, const CSPString& s2)
  64. { return s2.Compare(s1) != 0; }
  65. _SPSTRING_INLINE bool __stdcall operator<(const CSPString& s1, const CSPString& s2)
  66. { return s1.Compare(s2) < 0; }
  67. _SPSTRING_INLINE bool __stdcall operator<(const CSPString& s1, LPCTSTR s2)
  68. { return s1.Compare(s2) < 0; }
  69. _SPSTRING_INLINE bool __stdcall operator<(LPCTSTR s1, const CSPString& s2)
  70. { return s2.Compare(s1) > 0; }
  71. _SPSTRING_INLINE bool __stdcall operator>(const CSPString& s1, const CSPString& s2)
  72. { return s1.Compare(s2) > 0; }
  73. _SPSTRING_INLINE bool __stdcall operator>(const CSPString& s1, LPCTSTR s2)
  74. { return s1.Compare(s2) > 0; }
  75. _SPSTRING_INLINE bool __stdcall operator>(LPCTSTR s1, const CSPString& s2)
  76. { return s2.Compare(s1) < 0; }
  77. _SPSTRING_INLINE bool __stdcall operator<=(const CSPString& s1, const CSPString& s2)
  78. { return s1.Compare(s2) <= 0; }
  79. _SPSTRING_INLINE bool __stdcall operator<=(const CSPString& s1, LPCTSTR s2)
  80. { return s1.Compare(s2) <= 0; }
  81. _SPSTRING_INLINE bool __stdcall operator<=(LPCTSTR s1, const CSPString& s2)
  82. { return s2.Compare(s1) >= 0; }
  83. _SPSTRING_INLINE bool __stdcall operator>=(const CSPString& s1, const CSPString& s2)
  84. { return s1.Compare(s2) >= 0; }
  85. _SPSTRING_INLINE bool __stdcall operator>=(const CSPString& s1, LPCTSTR s2)
  86. { return s1.Compare(s2) >= 0; }
  87. _SPSTRING_INLINE bool __stdcall operator>=(LPCTSTR s1, const CSPString& s2)
  88. { return s2.Compare(s1) <= 0; }