📄 jnstring.cpp
字号:
case 3:
if(strTemp=="零")
strTemp=_T("零");
else
strTemp+=_T("佰");
break;
case 4:
if(strTemp=="零")
strTemp=_T("零");
else
strTemp+=_T("仟");
break;
case 5:
if(strTemp=="零")
strTemp=_T("万");
else
strTemp+=_T("万");
break;
case 6:
if(strTemp=="零")
strTemp=_T("零");
else
strTemp+=_T("拾");
break;
case 7:
if(strTemp=="零")
strTemp=_T("零");
else
strTemp+=_T("佰");
break;
case 8:
if(strTemp=="零")
strTemp=_T("零");
else
strTemp+=_T("仟");
break;
case 9:
if(strTemp=="零")
strTemp=_T("亿");
else
strTemp+=_T("亿");
break;
}
DXStr.TrimLeft();
DXStr.TrimRight();
sTempA=DXStr.Left(2);
if(strTemp=="零")
{
if(sTempA=="零")
{
DXStr=DXStr;
}
else if(sTempA=="元")
{
DXStr=DXStr;
}
else if(sTempA=="万")
{
DXStr=DXStr;
}
else if(sTempA=="亿")
{
DXStr=DXStr;
}
else
{
DXStr=strTemp+DXStr;
}
}
else
{
DXStr=strTemp+DXStr;
}
}
n1=s1.GetLength();
if(n1==1)
{
s1+=_T("0");
}
for(i=1;i<=2;i++)
{
strTemp=s1.GetAt(2-i);
strTemp=ConvertNumber(strTemp);
switch(i)
{
case 1:
if(strTemp=="零")
strTemp=_T("");
else
strTemp+=_T("分");
break;
case 2:
if(strTemp=="零")
strTemp=_T("");
else
strTemp+=_T("角");
break;
}
s2.Insert(0,strTemp);
}
DXStr+=s2;
}
sTempA=DXStr.Left(2);
if(sTempA=="元")
DXStr=DXStr.Right(DXStr.GetLength()-2);
return DXStr;
}
LPCTSTR JnString::strBOOL(BOOL bFlag)
{
return bFlag ? _T("TRUE") : _T("FALSE");
}
CString JnString::strVARIANT(const COleVariant &var)
{
CString strRet;
strRet = _T("Fish");
switch(var.vt)
{
case VT_EMPTY:
case VT_NULL:
strRet = _T("");
break;
case VT_I2:
strRet.Format(_T("%hd"),V_I2(&var));
break;
case VT_I4:
strRet.Format(_T("%d"),V_I4(&var));
break;
case VT_R4:
switch(m_nDigit)
{
case 0:
strRet.Format(_T("%e"),(double)V_R4(&var));
break;
case 1:
strRet.Format(_T("%.1f"),(double)V_R4(&var));
break;
case 2:
strRet.Format(_T("%.2f"),(double)V_R4(&var));
break;
case 3:
strRet.Format(_T("%.3f"),(double)V_R4(&var));
break;
case 4:
strRet.Format(_T("%.4f"),(double)V_R4(&var));
break;
case 5:
strRet.Format(_T("%.5f"),(double)V_R4(&var));
break;
case 6:
strRet.Format(_T("%.6f"),(double)V_R4(&var));
break;
case 7:
strRet.Format(_T("%.7f"),(double)V_R4(&var));
break;
case 8:
strRet.Format(_T("%.8f"),(double)V_R4(&var));
break;
case 9:
strRet.Format(_T("%.9f"),(double)V_R4(&var));
break;
case 10:
strRet.Format(_T("%.10f"),(double)V_R4(&var));
break;
case 11:
strRet.Format(_T("%.1f"),(double)V_R4(&var));
break;
default:
strRet.Format(_T("%g"),(double)V_R4(&var));
break;
}
break;
case VT_R8:
switch(m_nDigit)
{
case 0:
strRet.Format(_T("%e"),(double)V_R8(&var));
break;
case 1:
strRet.Format(_T("%.1f"),(double)V_R8(&var));
break;
case 2:
strRet.Format(_T("%.2f"),(double)V_R8(&var));
break;
case 3:
strRet.Format(_T("%.3f"),(double)V_R8(&var));
break;
case 4:
strRet.Format(_T("%.4f"),(double)V_R8(&var));
break;
case 5:
strRet.Format(_T("%.5f"),(double)V_R8(&var));
break;
case 6:
strRet.Format(_T("%.6f"),(double)V_R8(&var));
break;
case 7:
strRet.Format(_T("%.7f"),(double)V_R8(&var));
break;
case 8:
strRet.Format(_T("%.8f"),(double)V_R8(&var));
break;
case 9:
strRet.Format(_T("%.9f"),(double)V_R8(&var));
break;
case 10:
strRet.Format(_T("%.10f"),(double)V_R8(&var));
break;
case 11:
strRet.Format(_T("%.0f"),(double)V_R8(&var));
break;
default:
strRet.Format(_T("%g"),(double)V_R8(&var));
break;
}
break;
case VT_CY:
strRet = COleCurrency(var).Format();
break;
case VT_DATE:
strRet = COleDateTime(var).Format(_T("%Y年%m月%d日"));
break;
case VT_BSTR:
strRet = V_BSTR(&var);
break;
case VT_DISPATCH:
strRet = _T("VT_DISPATCH");
break;
case VT_ERROR:
strRet = _T("VT_ERROR");
break;
case VT_BOOL:
return strBOOL(V_BOOL(&var));
case VT_VARIANT:
strRet = _T("VT_VARIANT");
break;
case VT_UNKNOWN:
strRet = _T("VT_UNKNOWN");
break;
case VT_I1:
strRet = _T("VT_I1");
break;
case VT_UI1:
strRet.Format(_T("0x%02hX"),(unsigned short)V_UI1(&var));
break;
case VT_UI2:
strRet = _T("VT_UI2");
break;
case VT_UI4:
strRet = _T("VT_UI4");
break;
case VT_I8:
strRet = _T("VT_I8");
break;
case VT_UI8:
strRet = _T("VT_UI8");
break;
case VT_INT:
strRet = _T("VT_INT");
break;
case VT_UINT:
strRet = _T("VT_UINT");
break;
case VT_VOID:
strRet = _T("VT_VOID");
break;
case VT_HRESULT:
strRet = _T("VT_HRESULT");
break;
case VT_PTR:
strRet = _T("VT_PTR");
break;
case VT_SAFEARRAY:
strRet = _T("VT_SAFEARRAY");
break;
case VT_CARRAY:
strRet = _T("VT_CARRAY");
break;
case VT_USERDEFINED:
strRet = _T("VT_USERDEFINED");
break;
case VT_LPSTR:
strRet = _T("VT_LPSTR"); //********
break;
case VT_LPWSTR:
strRet = _T("VT_LPWSTR");
break;
case VT_FILETIME:
strRet = _T("VT_FILETIME");
break;
case VT_BLOB:
strRet = _T("VT_BLOB");
break;
case VT_STREAM:
strRet = _T("VT_STREAM");
break;
case VT_STORAGE:
strRet = _T("VT_STORAGE");
break;
case VT_STREAMED_OBJECT:
strRet = _T("VT_STREAMED_OBJECT");
break;
case VT_STORED_OBJECT:
strRet = _T("VT_STORED_OBJECT");
break;
case VT_BLOB_OBJECT:
strRet = _T("VT_BLOB_OBJECT");
break;
case VT_CF:
strRet = _T("VT_CF");
break;
case VT_CLSID:
strRet = _T("VT_CLSID");
break;
}
WORD vt = var.vt;
if(vt & VT_ARRAY){
vt = vt & ~VT_ARRAY;
strRet = _T("Array of ");
}
if(vt & VT_BYREF){
vt = vt & ~VT_BYREF;
strRet += _T("Pointer to ");
}
if(vt != var.vt){
switch(vt){
case VT_EMPTY:
strRet += _T("VT_EMPTY");
break;
case VT_NULL:
strRet += _T("VT_NULL");
break;
case VT_I2:
strRet += _T("VT_I2");
break;
case VT_I4:
strRet += _T("VT_I4");
break;
case VT_R4:
strRet += _T("VT_R4");
break;
case VT_R8:
strRet += _T("VT_R8");
break;
case VT_CY:
strRet += _T("VT_CY");
break;
case VT_DATE:
strRet += _T("VT_DATE");
break;
case VT_BSTR:
strRet += _T("VT_BSTR");
break;
case VT_DISPATCH:
strRet += _T("VT_DISPATCH");
break;
case VT_ERROR:
strRet += _T("VT_ERROR");
break;
case VT_BOOL:
strRet += _T("VT_BOOL");
break;
case VT_VARIANT:
strRet += _T("VT_VARIANT");
break;
case VT_UNKNOWN:
strRet += _T("VT_UNKNOWN");
break;
case VT_I1:
strRet += _T("VT_I1");
break;
case VT_UI1:
strRet += _T("VT_UI1");
break;
case VT_UI2:
strRet += _T("VT_UI2");
break;
case VT_UI4:
strRet += _T("VT_UI4");
break;
case VT_I8:
strRet += _T("VT_I8");
break;
case VT_UI8:
strRet += _T("VT_UI8");
break;
case VT_INT:
strRet += _T("VT_INT");
break;
case VT_UINT:
strRet += _T("VT_UINT");
break;
case VT_VOID:
strRet += _T("VT_VOID");
break;
case VT_HRESULT:
strRet += _T("VT_HRESULT");
break;
case VT_PTR:
strRet += _T("VT_PTR");
break;
case VT_SAFEARRAY:
strRet += _T("VT_SAFEARRAY");
break;
case VT_CARRAY:
strRet += _T("VT_CARRAY");
break;
case VT_USERDEFINED:
strRet += _T("VT_USERDEFINED");
break;
case VT_LPSTR:
strRet += _T("VT_LPSTR");
break;
case VT_LPWSTR:
strRet += _T("VT_LPWSTR");
break;
case VT_FILETIME:
strRet += _T("VT_FILETIME");
break;
case VT_BLOB:
strRet += _T("VT_BLOB");
break;
case VT_STREAM:
strRet += _T("VT_STREAM");
break;
case VT_STORAGE:
strRet += _T("VT_STORAGE");
break;
case VT_STREAMED_OBJECT:
strRet += _T("VT_STREAMED_OBJECT");
break;
case VT_STORED_OBJECT:
strRet += _T("VT_STORED_OBJECT");
break;
case VT_BLOB_OBJECT:
strRet += _T("VT_BLOB_OBJECT");
break;
case VT_CF:
strRet += _T("VT_CF");
break;
case VT_CLSID:
strRet += _T("VT_CLSID");
break;
}
}
return strRet;
}
int JnString::GetDiskSerial()
{
LPCTSTR lpRootPathName="c:\\"; //取C盘的序列号
LPTSTR lpVolumeNameBuffer=new char[12];//磁盘卷标
DWORD nVolumeNameSize=12;
DWORD VolumeSerialNumber;//磁盘序列号
DWORD MaximumComponentLength;
LPTSTR lpFileSystemNameBuffer=new char[10];
DWORD nFileSystemNameSize=10;
DWORD FileSystemFlags;
GetVolumeInformation(lpRootPathName,
lpVolumeNameBuffer, nVolumeNameSize,
&VolumeSerialNumber, &MaximumComponentLength,
&FileSystemFlags,lpFileSystemNameBuffer, nFileSystemNameSize);
VolumeSerialNumber^=0x91827364;//做一转换,
delete lpVolumeNameBuffer;
delete lpFileSystemNameBuffer;
return (int)VolumeSerialNumber;
}
CString JnString::Jiami1(CString str1)
{
/*
1,源码是:123456ABCDE
2,密码是:Jn
加密过程为:
1,把Jn获得它的字符串的和
2,源码的每个字符都要加上这个字符串的和的偏移
另外还有一种方法是:
使得源码和密码能够偏移到26个字母区域中去,方法是:
1,获得那个字母的数值
2,用这个字母的数值去获得余数
*/
int nLenght=str1.GetLength();
char charAt;
CString str=_T("");
CTime ptime=CTime::GetCurrentTime();
div_t t;
for(int i=0;i<nLenght;i++)
{
charAt=str1.GetAt(i);
t=div(charAt,26);
charAt=t.rem+65;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -