475 lines
9.4 KiB
C++
475 lines
9.4 KiB
C++
|
#include "stdafx.h"
|
|||
|
#ifndef LUTOOL_CPP
|
|||
|
#define LUTOOL_CPP
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ҿո<D2BF>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:ss Ҫ<>ص<EFBFBD><D8B5>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD>:ss <20><><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
char * AllTrim( char * ss )
|
|||
|
{
|
|||
|
int i,j;
|
|||
|
int len;
|
|||
|
len=lstrlen(ss);
|
|||
|
for (i=1;i<len;i++)
|
|||
|
{
|
|||
|
if (ss[len-i]==' ')
|
|||
|
ss[len-i]=0;
|
|||
|
else
|
|||
|
break;
|
|||
|
}
|
|||
|
len=lstrlen(ss);
|
|||
|
for (i=0;i<len;i++)
|
|||
|
if (ss[i]!=' ') break;
|
|||
|
for (j=0;j<len-i;j++)
|
|||
|
{
|
|||
|
ss[j]=ss[j+i];
|
|||
|
}
|
|||
|
ss[j]=0;
|
|||
|
return ss;
|
|||
|
}
|
|||
|
|
|||
|
//ȥ<><C8A5>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
|
|||
|
char * ExChar( char * szSrc , char * pEx )
|
|||
|
{
|
|||
|
char Buf[4096];
|
|||
|
char pComp[4096];
|
|||
|
lstrcpy( Buf , szSrc );
|
|||
|
long lLen = lstrlen( Buf );
|
|||
|
long lLen2= lstrlen( pEx );
|
|||
|
int j =0;
|
|||
|
for ( int i =0 ; i< lLen ; i++ )
|
|||
|
{
|
|||
|
memcpy( pComp , Buf+i , lLen2 );
|
|||
|
pComp[lLen2] = 0;
|
|||
|
if (!lstrcmp( pComp , pEx ) )
|
|||
|
{
|
|||
|
i = i+lLen2-1; //<2F><>Ϊfor<6F><72><EFBFBD><EFBFBD>1,<2C><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>-1
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
szSrc[j] = Buf[i];
|
|||
|
j++;
|
|||
|
}
|
|||
|
}
|
|||
|
szSrc[j]=0;
|
|||
|
return szSrc;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
int FoundChar( char * szSrc , char * pEx , long lLen)
|
|||
|
{
|
|||
|
char pComp[4096];
|
|||
|
if ( lLen == 0 ) //<2F><><EFBFBD><EFBFBD>ûָ<C3BB><D6B8><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>ȡԭ<C8A1>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
lLen = lstrlen( szSrc );
|
|||
|
long lLen2= lstrlen( pEx );
|
|||
|
int j =0;
|
|||
|
for ( int i =0 ; i< lLen ; i++ )
|
|||
|
{
|
|||
|
memcpy( pComp , szSrc+i , lLen2 );
|
|||
|
pComp[lLen2] = 0;
|
|||
|
if (!lstrcmp( pComp , pEx ) )
|
|||
|
{
|
|||
|
return i+1;
|
|||
|
}
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD>յĿͻ<C4BF><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>szMess <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
// szRec <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
// iNo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
|||
|
// cMake <20><><EFBFBD><EFBFBD>ʲô<CAB2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>
|
|||
|
//<2F><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>:char * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,<2C><><EFBFBD><EFBFBD><F3BDABB7><EFBFBD>NULL
|
|||
|
|
|||
|
bool GetReqMess(char *szMess,char *szRec,int iNo,char cMake , long lMessLen) //<2F><><EFBFBD>յĿͻ<C4BF><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
int iTemp;
|
|||
|
int iTemp1;
|
|||
|
int iTempNo;
|
|||
|
iTemp1=0;
|
|||
|
iTempNo=0;
|
|||
|
szRec[0]=0;
|
|||
|
if ( lMessLen <=0 ) lMessLen = lstrlen(szMess);
|
|||
|
for (iTemp=0;iTemp<lMessLen;iTemp++)
|
|||
|
{
|
|||
|
szRec[iTemp1]=szMess[iTemp];
|
|||
|
if (szMess[iTemp]==cMake)
|
|||
|
{
|
|||
|
if (iTempNo==iNo)
|
|||
|
{
|
|||
|
szRec[iTemp1]=0;
|
|||
|
return true;
|
|||
|
}
|
|||
|
iTempNo=iTempNo+1;
|
|||
|
iTemp1=-1; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD>滹Ҫ<E6BBB9><D2AA>1<EFBFBD><31><EFBFBD><EFBFBD>Ϊ0
|
|||
|
}
|
|||
|
iTemp1=iTemp1+1;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
BOOL EnCodePasswd( char * szSourse , char * szTarget )
|
|||
|
{
|
|||
|
long lSourseLen = lstrlen( szSourse );
|
|||
|
long lCode;
|
|||
|
long i;
|
|||
|
long lRound;
|
|||
|
char szBuf[ 64 ];
|
|||
|
*szTarget = 0;
|
|||
|
lCode = ( lSourseLen + 13 )*7;
|
|||
|
wsprintf( szTarget , "%04X" , lCode );
|
|||
|
wsprintf( szTarget , "" );
|
|||
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
lRound = GetRoundValue('A' , 'Z' );
|
|||
|
sprintf( szBuf , "%c" , lRound );
|
|||
|
lstrcat( szTarget , szBuf );
|
|||
|
for ( i = 0 ; i<lSourseLen ; i++ )
|
|||
|
{
|
|||
|
if ( i%2 == 0 )
|
|||
|
{
|
|||
|
lCode = ( szSourse[ i ] + 9 - i ) * 4 ;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
lCode = ( szSourse[ i ] + 17 - i ) * 3 ;
|
|||
|
}
|
|||
|
sprintf( szBuf , "%03X" , lCode );
|
|||
|
lstrcat( szTarget , szBuf );
|
|||
|
lRound = GetRoundValue('A' , 'Z' );
|
|||
|
sprintf( szBuf , "%c" , lRound );
|
|||
|
lstrcat( szTarget , szBuf );
|
|||
|
}
|
|||
|
lCode = 0;
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
BOOL DeCodePasswd( char * szSourse , char * szTarget )
|
|||
|
{
|
|||
|
long lSourseLen = lstrlen( szSourse );
|
|||
|
if ( lSourseLen < 1 )
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
long lCode;
|
|||
|
long i;
|
|||
|
char szBuf[ 64 ];
|
|||
|
char *endptr;
|
|||
|
lSourseLen = lSourseLen/4 ;
|
|||
|
szSourse ++ ; //<2F><>Ϊ<EFBFBD><CEAA>һ<EFBFBD><D2BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
for ( i = 0 ; i<lSourseLen ; i++ )
|
|||
|
{
|
|||
|
strncpy( szBuf , szSourse , 3 );
|
|||
|
szBuf[ 3 ]=0;
|
|||
|
szSourse = &szSourse[4]; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
lCode = strtol( szBuf , &endptr , 16 );
|
|||
|
if ( i%2 == 0 )
|
|||
|
{
|
|||
|
szTarget[ i ] = (char)(( lCode / 4 ) -9 + i);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
szTarget[ i ] = (char)(( lCode / 3 ) -17 + i);
|
|||
|
}
|
|||
|
}
|
|||
|
szTarget[ i ] = 0;
|
|||
|
lCode = 0;
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
int CharHex(char ch)
|
|||
|
{
|
|||
|
//if( isdigit( ch ) ) return( atoi( &ch) );
|
|||
|
if( ch >='0' && ch <= '9' ) return( atoi( &ch) );
|
|||
|
else {
|
|||
|
if( ch == 'a' || ch == 'A' ) return( 10 );
|
|||
|
if( ch == 'b' || ch == 'B' ) return( 11 );
|
|||
|
if( ch == 'c' || ch == 'C' ) return( 12 );
|
|||
|
if( ch == 'd' || ch == 'D' ) return( 13 );
|
|||
|
if( ch == 'e' || ch == 'E' ) return( 14 );
|
|||
|
if( ch == 'f' || ch == 'F' ) return( 15 );
|
|||
|
}
|
|||
|
return( 0 );
|
|||
|
}
|
|||
|
DWORD StrToHex(const char *pstr, CHAR *hex)
|
|||
|
{
|
|||
|
int n = strlen( pstr );
|
|||
|
int i = 0,j = 0;
|
|||
|
for( ;i < n;i ++,j++ ) {
|
|||
|
CHAR ntmp;
|
|||
|
hex[j] = 0;
|
|||
|
ntmp = CharHex( pstr[i] );
|
|||
|
ntmp <<= 4;
|
|||
|
hex[j] += ntmp;
|
|||
|
i ++;
|
|||
|
ntmp = CharHex( pstr[i] );
|
|||
|
hex[j] += ntmp;
|
|||
|
}
|
|||
|
return n/2;
|
|||
|
}
|
|||
|
void AsciiToHex( char *pszOrgRandom , char *pszDesRandom , long lLen)
|
|||
|
{
|
|||
|
char *p = (char *)pszDesRandom;
|
|||
|
//long lLen = lstrlen( (char*)pszOrgRandom);
|
|||
|
for( long i = 0; i < lLen; ++i )
|
|||
|
{
|
|||
|
sprintf(p, "%02X", (BYTE)pszOrgRandom[i] );
|
|||
|
p += 2;
|
|||
|
}
|
|||
|
*p=0;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
void HexToAscii( char *pszOrgRandom , char *pszDesRandom )
|
|||
|
{
|
|||
|
char Buf[4];
|
|||
|
char *pDes = (char *)pszDesRandom;
|
|||
|
char *pOrg = (char *)pszOrgRandom;
|
|||
|
long lLen = lstrlen( pOrg);
|
|||
|
long lTemp;
|
|||
|
for( int i = 0; i < lLen/2; ++i )
|
|||
|
{
|
|||
|
memcpy( Buf , pOrg+i*2 , 2 );
|
|||
|
Buf[2] = 0;
|
|||
|
lTemp = CharHex(Buf[0])*16 + CharHex(Buf[1]);
|
|||
|
if ( i%2 == 1 )
|
|||
|
pDes[i-1] = (char)lTemp; //<2F><>ת
|
|||
|
else
|
|||
|
pDes[i+1] = (char)lTemp; //<2F><>ת
|
|||
|
|
|||
|
}
|
|||
|
pDes[i] = 0;
|
|||
|
}
|
|||
|
*/
|
|||
|
|
|||
|
void HexToAscii( char *pszOrgRandom , char *pszDesRandom )
|
|||
|
{
|
|||
|
char Buf[4];
|
|||
|
char *pDes = (char *)pszDesRandom;
|
|||
|
char *pOrg = (char *)pszOrgRandom;
|
|||
|
long lLen = lstrlen( pOrg);
|
|||
|
long lTemp;
|
|||
|
for( int i = 0; i < lLen/2; ++i )
|
|||
|
{
|
|||
|
memcpy( Buf , pOrg+i*2 , 2 );
|
|||
|
Buf[2] = 0;
|
|||
|
lTemp = CharHex(Buf[0])*16 + CharHex(Buf[1]);
|
|||
|
pDes[i] = (char)lTemp;
|
|||
|
}
|
|||
|
pDes[i] = 0;
|
|||
|
}
|
|||
|
|
|||
|
void ExchangeUniCode( char * pData )
|
|||
|
{
|
|||
|
char pEx[4];
|
|||
|
long lLen = lstrlen( pData );
|
|||
|
for ( int i = 0 ; i< lLen/4 ; i++ )
|
|||
|
{
|
|||
|
memcpy( pEx , pData+i*4 , 2 );
|
|||
|
memcpy( pData+i*4 , pData+i*4+2 , 2 );
|
|||
|
memcpy( pData+i*4+2 , pEx , 2 );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void ExchangeChar( char * pData )
|
|||
|
{
|
|||
|
char pEx;
|
|||
|
long lLen = lstrlen( pData );
|
|||
|
for ( int i = 0 ; i< lLen ; i++ )
|
|||
|
{
|
|||
|
pEx = pData[i+1];
|
|||
|
pData[i+1] = pData[i];
|
|||
|
pData[i] = pEx;
|
|||
|
i = i+1 ;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void HexToPhoneName( char * pHex , char * pName )
|
|||
|
{
|
|||
|
char szName2[4096];
|
|||
|
ExChar( pHex , "\"");
|
|||
|
long lLen = lstrlen( pHex );
|
|||
|
ExchangeUniCode( pHex );
|
|||
|
HexToAscii( pHex , szName2 );
|
|||
|
long l = WideCharToMultiByte( CP_ACP,NULL,(LPWSTR)szName2 , lLen/4 , pName , 256 , NULL , NULL);
|
|||
|
pName[l] = 0;
|
|||
|
}
|
|||
|
|
|||
|
void PhoneNameToHex( char * pName , char * pHex)
|
|||
|
{
|
|||
|
char szName2[4096];
|
|||
|
char szHex2[4096];
|
|||
|
long lLen = lstrlen( pName );
|
|||
|
long l = MultiByteToWideChar( CP_ACP,NULL,pName,lLen, (LPWSTR)szName2 , 4096 );
|
|||
|
szName2[l*2]=0;
|
|||
|
AsciiToHex( szName2 , szHex2 , l*2);
|
|||
|
ExchangeUniCode( szHex2 );
|
|||
|
wsprintf( pHex , "%s" , szHex2 );
|
|||
|
}
|
|||
|
|
|||
|
long TwoCharToHex( char * Buf )
|
|||
|
{
|
|||
|
return CharHex(Buf[0])*16 + CharHex(Buf[1]);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BOOL GetDeRNFromEnRN(char *pEnRN, char *pDeRN)
|
|||
|
{
|
|||
|
char RN[64];
|
|||
|
if ( DeCodePasswd( pEnRN , RN ) )
|
|||
|
{
|
|||
|
long lLen = lstrlen( RN );
|
|||
|
for ( int i =0 ; i<lLen ; i++ )
|
|||
|
{
|
|||
|
pDeRN[i]=~(-RN[i]);
|
|||
|
}
|
|||
|
pDeRN[i]=0;
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
BOOL GetEnRNFromDeRN(char *pDeRN, char *pEnRN)
|
|||
|
{
|
|||
|
char RN[64];
|
|||
|
long lLen = lstrlen( pDeRN );
|
|||
|
for ( int i = 0; i< lLen ; i++ )
|
|||
|
{
|
|||
|
RN[i] = -(~pDeRN[i]);
|
|||
|
}
|
|||
|
RN[i] = 0;
|
|||
|
return EnCodePasswd( RN , pEnRN );
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD>ع̶<D8B9><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
long GetRoundValue(long lMin , long lMax )
|
|||
|
{
|
|||
|
long l ;
|
|||
|
long lRec;
|
|||
|
SYSTEMTIME time;
|
|||
|
while (true)
|
|||
|
{
|
|||
|
::GetSystemTime(&time);
|
|||
|
l = time.wMinute*600+time.wHour*6000+time.wSecond*200+time.wMilliseconds;
|
|||
|
l = rand();
|
|||
|
lRec = l%lMax;
|
|||
|
if (lRec >= lMin )
|
|||
|
return lRec;
|
|||
|
}
|
|||
|
return l;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ı<EFBFBD>־
|
|||
|
int FoundCharEx( char * szSrc , long lSrcLen , char * pEx , long lExLen)
|
|||
|
{
|
|||
|
char pComp[128];
|
|||
|
long lLen = lSrcLen;
|
|||
|
if ( lSrcLen <= 0 ) //<2F><><EFBFBD><EFBFBD>ûָ<C3BB><D6B8><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>ȡԭ<C8A1>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
lLen = lstrlen( szSrc );
|
|||
|
long lLen2= lExLen;
|
|||
|
if ( lLen2 <= 0 ) //<2F><><EFBFBD><EFBFBD>ûָ<C3BB><D6B8><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>ȡԭ<C8A1>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
lLen2 = lstrlen( pEx );
|
|||
|
|
|||
|
int j =0;
|
|||
|
for ( int i =0 ; i< lLen ; i++ )
|
|||
|
{
|
|||
|
memcpy( pComp , szSrc+i , lLen2 );
|
|||
|
pComp[lLen2] = 0;
|
|||
|
if (!strncmp( pComp , pEx , lLen2) )
|
|||
|
{
|
|||
|
return i+1;
|
|||
|
}
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
//<2F>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>绰<EFBFBD><E7BBB0><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ͬ
|
|||
|
BOOL StrCmpMobile( char * pNo1 , char * pNo2 )
|
|||
|
{
|
|||
|
char szNo1[64];
|
|||
|
char szNo2[64];
|
|||
|
DZStr( pNo1 , szNo1 ); //<2F><>ת<EFBFBD>ַ<EFBFBD>
|
|||
|
DZStr( pNo2 , szNo2 );
|
|||
|
ExChar( szNo1 , "+" ); //ȥ<><C8A5>+<2B><>,<2C><><EFBFBD>ʱ<EFBFBD>־
|
|||
|
ExChar( szNo2 , "+" );
|
|||
|
long lLen1 = lstrlen(szNo1 );
|
|||
|
long lLen2 = lstrlen(szNo2 );
|
|||
|
long lMin = lLen1>lLen2?lLen2:lLen1;
|
|||
|
return !strncmp( szNo1 , szNo2 , lMin );
|
|||
|
}
|
|||
|
//<2F><>ת<EFBFBD>ַ<EFBFBD>
|
|||
|
void DZStr( char * pYChar , char * pDZChar )
|
|||
|
{
|
|||
|
long lLen = lstrlen( pYChar );
|
|||
|
for ( int i = 0 ; i< lLen ; i ++ )
|
|||
|
{
|
|||
|
pDZChar[i] = pYChar[lLen-i-1];
|
|||
|
}
|
|||
|
pDZChar[i] = 0;
|
|||
|
}
|
|||
|
|
|||
|
//<2F>7Bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>
|
|||
|
long DeCode7Bit(char *pSrc, char * pTag , long lSrcLen)
|
|||
|
{
|
|||
|
if ( lSrcLen <= 0 )
|
|||
|
lSrcLen = lstrlen( pSrc );
|
|||
|
//long lSrcLen = lstrlen( pSrc );
|
|||
|
unsigned char c,c1;
|
|||
|
unsigned char mask1 = 0;
|
|||
|
unsigned char mask2 = 0;
|
|||
|
long TagCount = 0;
|
|||
|
long lCount = 7;
|
|||
|
for (int i=0 ; i< lSrcLen ; i++ )
|
|||
|
{
|
|||
|
c = (unsigned char)pSrc[i]; //ȡ<>õ<EFBFBD>ǰ<EFBFBD><C7B0>Ҫת<D2AA><D7AA><EFBFBD>ַ<EFBFBD>
|
|||
|
mask2 = c>>lCount; //ȡ<><C8A1><EFBFBD><EFBFBD>һ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>mask
|
|||
|
c1 = c<<(8-lCount); //<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>8bit<69>ұ<EFBFBD>ֵ
|
|||
|
c1 = c1>>1; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>λΪ0
|
|||
|
c1 = c1|mask1; //<2F>ϲ<EFBFBD><CFB2><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
mask1 = mask2; //<2F><><EFBFBD><EFBFBD>mask
|
|||
|
pTag[TagCount] = c1;
|
|||
|
TagCount ++ ;
|
|||
|
lCount -- ;
|
|||
|
if ( lCount <=0 )
|
|||
|
{
|
|||
|
lCount = 7;
|
|||
|
pTag[TagCount] = mask1;
|
|||
|
TagCount ++ ;
|
|||
|
mask1 = 0;
|
|||
|
mask2 = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
pTag[TagCount] = 0;
|
|||
|
return TagCount;
|
|||
|
}
|
|||
|
|
|||
|
char * ExMobileGZM( char * pMobile )
|
|||
|
{
|
|||
|
char szBuf[64];
|
|||
|
strcpy( szBuf , pMobile );
|
|||
|
if ( !strncmp( szBuf , "+86" , strlen("+86") ) )
|
|||
|
{
|
|||
|
strcpy( pMobile , szBuf+3 );
|
|||
|
return pMobile;
|
|||
|
}
|
|||
|
if ( !strncmp( szBuf , "0086" , strlen("0086") ) )
|
|||
|
{
|
|||
|
strcpy( pMobile , szBuf+4 );
|
|||
|
return pMobile;
|
|||
|
}
|
|||
|
if ( !strncmp( szBuf , "86" , strlen("86") ) )
|
|||
|
{
|
|||
|
strcpy( pMobile , szBuf+2 );
|
|||
|
return pMobile;
|
|||
|
}
|
|||
|
if ( !strncmp( szBuf , "+" , strlen("+") ) )
|
|||
|
{
|
|||
|
strcpy( pMobile , szBuf+1 );
|
|||
|
return pMobile;
|
|||
|
}
|
|||
|
if ( !strncmp( szBuf , "00" , strlen("00") ) )
|
|||
|
{
|
|||
|
strcpy( pMobile , szBuf+2 );
|
|||
|
return pMobile;
|
|||
|
}
|
|||
|
return pMobile;
|
|||
|
}
|
|||
|
#endif
|