www.pudn.com > SMS.rar > String.h


#pragma once 
 
enum 
{ 
	STRING_IS_MULTICHARS = 0,		// 是多字节字符串 
	STRING_IS_UNICODE,				// 是UNICODE字符串 
	STRING_IS_SOFTCODE,				// 是和程序一样的字符串编码 
}; 
 
class DLL_INTERNAL CMultiByteString 
{ 
public: 
	CMultiByteString ( LPCTSTR lpszOrg, int nOrgStringEncodeType=STRING_IS_SOFTCODE, OUT char *buf=NULL, int size=0, OUT int *pnCount=NULL ); 
	~CMultiByteString (); 
	char *GetBuffer() 
	{ 
		if ( m_pszData ) return m_pszData; 
		return ""; 
	} 
	int GetLength() 
	{ 
		if ( m_pszData ) return (int)strlen(m_pszData); 
		return 0; 
	} 
private: 
	char *m_pszData; 
	BOOL m_bNewBuffer; 
}; 
 
DLL_INTERNAL CString Data2HexString ( char *data, int size, int nBytesPerLine=16 ); 
DLL_INTERNAL int ConvStringToHexData(CString csOrgStr, BYTE *szOutBuffer, int nOutBufferSize); 
 
// hwSnprintf 函数 
#ifdef UNICODE 
#define hwSnprintf hwSnprintfW 
#else 
#define hwSnprintf hwSnprintfA 
#endif 
 
DLL_INTERNAL CString GetCompatibleString ( LPVOID lpszOrg, BOOL bOrgIsUncode ); 
DLL_INTERNAL int hwSnprintfA ( char* buffer, int count, char* format, ... ); 
DLL_INTERNAL int hwSnprintfW ( WCHAR* buffer, int count, WCHAR* format, ... ); 
DLL_INTERNAL BOOL StringToGUID ( LPCTSTR lpszGUID, GUID &Guid); 
DLL_INTERNAL CString GUIDToString ( GUID &Guid ); 
DLL_INTERNAL CString FormatString ( LPCTSTR lpszStr, ... ); 
DLL_INTERNAL int CalcCharCount ( LPCTSTR lpszText, TCHAR chCalc ); 
DLL_INTERNAL CString GetOneLine ( CString &str, LPCTSTR lpszLineEndFlag=_T("\n"), BOOL bEndAsClrf=FALSE ); 
DLL_INTERNAL int FindGraphPos ( CString &csOrg, int nStartPos ); 
DLL_INTERNAL int FindNonGraphPos ( CString &csOrg, int nStartPos ); 
DLL_INTERNAL CString GetOneWord ( CString &csOrg, int nCaseChange=0 ); 
DLL_INTERNAL void DeleteAfterChar ( CString &csOrg, TCHAR cDel ); 
DLL_INTERNAL BOOL PartTwoWord ( IN CString &csOrg, OUT CString &csWord1, OUT CString &csWord2, IN TCHAR cPartChr=_T(':') ); 
DLL_INTERNAL CString IntToString ( int nValue, BOOL bUnsigned=TRUE ); 
DLL_INTERNAL CString FormatBytes ( double fFileSize ); 
DLL_INTERNAL TCHAR *hwStrChr ( LPCTSTR string, int c ); 
DLL_INTERNAL void ReplaceChineseStrToEnglish ( TCHAR *szBuf, TCHAR cReplace ); 
DLL_INTERNAL void CleanseString ( CString &cs, LPCTSTR lpszApp=NULL ); 
DLL_INTERNAL int PartStringAndAddToStrAry ( LPCTSTR pStr, CStringArray &StrAry, LPCTSTR seps=_T("\t\r\n") ); 
DLL_INTERNAL int PartStringAndAddToStrAry ( LPCTSTR pStr, CStringArray &StrAry, TCHAR nPartFlag ); 
DLL_INTERNAL int PartDigitOrSpecifyCharAndAddToStrAry ( LPCTSTR pStr, CStringArray &StrAry, TCHAR *seps=NULL ); 
DLL_INTERNAL int PartStringAndAddToStrAry ( LPCTSTR lpszStr, CStringArray &StrAry, TCHAR nFirstFlag, TCHAR nSecondFlag ); 
DLL_INTERNAL int StrFind ( LPCTSTR lpszOrg, int nStart, TCHAR cFind, ... ); 
DLL_INTERNAL void UIntAry2StrAry ( IN CUIntArray &UIntAry, OUT CStringArray &StrAry ); 
DLL_INTERNAL CStringArray *SyncopateString ( char *szText, int SyncopateLength ); 
DLL_INTERNAL int FindSentenceSyncopatePostion ( char *szData, int nPreparePos );