📄 helpfunc.cpp
字号:
// HelpFunc.cpp: implementation of the CHelpFunc class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "HelpFunc.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CHelpFunc::CHelpFunc()
{
}
CHelpFunc::~CHelpFunc()
{
}
// 根据时间字符串合成时间
time_t CHelpFunc::GetTimeFromString( LPCTSTR strTime )
{
int n = strlen(strTime);
char str[50];
strcpy(str, strTime);
char *p = str;
int nYear, nMonth, nDay, nHour, nMin, nSec;
nYear = 1900;
nMonth = 1;
nDay = 1;
nHour = 0;
nMin = 0;
nSec = 0;
if( n >= 4 )
{
*(p+4) = 0;
nYear = atoi(p);
p += 5;
if( n >= 7 )
{
*(p+2) = 0;
nMonth = atoi(p);
p += 3;
if( n >= 10 )
{
*(p+2) = 0;
nDay = atoi(p);
p += 3;
if( n >= 13 )
{
*(p+2) = 0;
nHour = atoi(p);
p += 3;
if( n >= 16 )
{
*(p+2) = 0;
nMin = atoi(p);
p += 3;
if( n >= 19 )
{
*(p+2) = 0;
nSec = atoi(p);
}
}
}
}
}
}
CTime dt(nYear, nMonth, nDay, nHour, nMin, nSec);
return dt.GetTime();
}
// 取时间字符串
CString CHelpFunc::GetTimeString(time_t dtTime)
{
CTime dt(dtTime);
return dt.Format("%Y-%m-%d %H:%M:%S");
}
// 取时间和日期字符串
CString CHelpFunc::GetTimeStringOnly(time_t dtTime)
{
CTime dt(dtTime);
return dt.Format("%H:%M:%S");
}
CString CHelpFunc::GetDateStringOnly(time_t dtTime)
{
CTime dt(dtTime);
return dt.Format("%Y-%m-%d");
}
// 取时间部分
int CHelpFunc::GetTimePart(time_t dtTime, int nType)
{
CTime dt(dtTime);
switch(nType)
{
case 'Y': return dt.GetYear();
case 'M': return dt.GetMonth();
case 'D': return dt.GetDay();
case 'H': return dt.GetHour();
case 'N': return dt.GetMinute();
case 'S': return dt.GetSecond();
}
return 0;
}
// 判断是否是联通的手机
BOOL CHelpFunc::IsUnicomMobile(LPCTSTR strCallNumber)
{
CString str = GetRealNumber(strCallNumber);
int n = atoi(str.Mid(0,3));
if( n >= 130 && n < 135 )
return TRUE;
return FALSE;
}
// 是否是联通CDMA手机
BOOL CHelpFunc::IsUnicomMobileCDMA(LPCTSTR strCallNumber)
{
CString str = GetRealNumber(strCallNumber);
int n = atoi(str.Mid(0,3));
if( n == 133 )
return TRUE;
return FALSE;
}
// 是否是联通GSM
BOOL CHelpFunc::IsUnicomMobileGSM(LPCTSTR strCallNumber)
{
CString str = GetRealNumber(strCallNumber);
int n = atoi(str.Mid(0,3));
if( n == 130 || n == 131 )
return TRUE;
return FALSE;
}
// 判断是否是手机
BOOL CHelpFunc::IsMobile(LPCTSTR strCallNumber)
{
CString str = GetRealNumber( strCallNumber );
if( str.Mid(0,2) == "13" )
return TRUE;
return FALSE;
}
// 判断是否是移动的手机
BOOL CHelpFunc::IsMobiMobile(LPCTSTR strCallNumber)
{
CString str = GetRealNumber( strCallNumber );
int n = atoi(str.Mid(0,3));
if( n >= 135 && n <= 139 )
return TRUE;
return FALSE;
}
// 取实际的手机号(去掉86之类的前缀)
CString CHelpFunc::GetRealNumber(LPCTSTR strCallNumber)
{
CString strNumber = strCallNumber;
if( strNumber.GetLength() < 10 )
return strNumber;
if( strNumber.Mid(0, 2) == "86" )
return strNumber.Mid(2);
if( strNumber.Mid(0, 4) == "0086")
return strNumber.Mid(4);
return strNumber;
}
// 取应用程序的路径
CString CHelpFunc::GetAppPath()
{
char strTmp[1024];
memset(strTmp, 0, sizeof(strTmp));
GetModuleFileName(AfxGetInstanceHandle(), strTmp, 1023);
char *p = strTmp + strlen(strTmp);
while(*p != '\\') p--;
*(p+1) = 0;
return CString((LPCTSTR)strTmp);
}
// 取应用程序的名称
CString CHelpFunc::GetAppName()
{
char strTmp[1024];
memset(strTmp, 0, sizeof(strTmp));
GetModuleFileName(AfxGetInstanceHandle(), strTmp, 1023);
char *p = strTmp + strlen(strTmp);
while(*p != '\\')p--;
return CString((LPCTSTR)(p+1));
}
// 取应用程序的名称带路径
CString CHelpFunc::GetAppNameWithPath()
{
char strTmp[1024];
memset(strTmp, 0, sizeof(strTmp));
GetModuleFileName(AfxGetInstanceHandle(), strTmp, 1023);
return CString((LPCTSTR)strTmp);
}
// 分解应用程序的名称
void CHelpFunc::ParseAppName(CString strAppName, CString &strName, CString &strExtName)
{
CString str = GetAppName();
int n = str.Find('.');
strName = str.Mid(0, n);
strExtName = str.Mid(n+1);
}
// 转换信令点编码
// 信令点编码格式:255.17.167
int CHelpFunc::PC2INT( LPCTSTR strPC )
{
char str[50];
if( *strPC == 0 )
return 0;
sprintf( str, "%s", strPC);
char *p = str, *pe;
int b1, b2, b3;
pe = strchr(p, '.');
*pe = 0;
b1 = atoi(p);
p = pe+1;
pe = strchr(p, '.');
*pe = 0;
b2 = atoi(p);
b3 = atoi(pe+1);
return (b1<<16)+(b2<<8)+b3;
}
CString CHelpFunc::INT2PC( int nPC )
{
CString str;
str.Format("%d.%d.%d", (nPC&0xFF0000)>>16, (nPC&0xFF00)>>8, (nPC&0xFF));
return str;
}
// 取临时文件名
CString CHelpFunc::GetTempRcdFile(int ch)
{
CString str;
str.Format("%svocTemp\\ch%d.voc", GetAppPath(), ch);
return str;
}
// 是否是数字
BOOL CHelpFunc::IsDigit(unsigned char chr)
{
if( chr >= '0' && chr <= '9' )
return TRUE;
return FALSE;
}
void CHelpFunc::DoSystemProcess()
{
MSG msg;
if( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -