📄 cloadphonenumber.cpp
字号:
// CLoadPhoneNumber.cpp: implementation of the CLoadPhoneNumber class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "sms.h"
#include "CLoadPhoneNumber.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CLoadPhoneNumber::CLoadPhoneNumber()
{
}
CLoadPhoneNumber::~CLoadPhoneNumber()
{
}
BOOL CLoadPhoneNumber::LoadAllPhoneNumber(std::vector<CString> & m_PhoneNumberList , int & errCount)
{
//清空号码列表中的内容
m_PhoneNumberList.clear();
char buff[512]={0};
m_fileStream.getline(buff,sizeof(buff));
CString phoneNumber;
phoneNumber=buff;
TRACE("%s\n",buff);
//判断电话号码表是否以"input phone number"开头
if(0!=phoneNumber.Find("input phone number"))
{
return FALSE;
}
BOOL isRight=TRUE;
BOOL isFormatRight=FALSE;//用来标记格式是否正确,即是否以"end of input phone number"结尾
while(m_fileStream.good())
{
//将电话号码的字符串清空
phoneNumber.Empty();
memset(buff,0,sizeof(buff));
m_fileStream.getline(buff,sizeof(buff));
phoneNumber=buff;
//去掉字符串的左右空格
phoneNumber.TrimLeft();
phoneNumber.TrimRight();
TRACE(phoneNumber);
//如果读取出来的内容为空的情况下跳过
if(phoneNumber.IsEmpty())
{
continue;
}
//当查询到"end of input phone number"就认为手机号码结束
if("end of input phone number"==phoneNumber)
{
isFormatRight=TRUE;
break;
}
//判断手机号是否存在非数字字符的存在
//判断号码的最大长度为24个字节,必须为数字或+号
int i=0;
isRight=TRUE;
//判断是否以数字或+开头
for(i=0;i<phoneNumber.GetLength();i++)
{
if(! (isdigit(phoneNumber[i]) || phoneNumber[0]=='+' && i==0 ))
{
isRight=FALSE;
}
}
TRACE("号码为%s %d",phoneNumber,isRight);
//在号码格式正确的基础上再判断号码的最大长度是否超过24
if(!(isRight && phoneNumber.GetLength()<=24))
{
errCount++;
continue;
}
//要先对"+"进行处理,而不能先判断是否以"86"开头
if("+"==phoneNumber.Left(1))
{
phoneNumber=phoneNumber.Mid(1);
}
//如果手机号不以86就给他补个86进去
if("86"!=phoneNumber.Left(2))
{
phoneNumber="86"+phoneNumber;
}
//判断当前号码是否存在在List中
int j;
BOOL isExist=FALSE;
for(j=0;j<m_PhoneNumberList.size();j++)
{
if(m_PhoneNumberList[j]==phoneNumber)
{
isExist=TRUE;
}
}
if(isExist)
{
continue;
}
if(TRUE==isRight)
{
m_PhoneNumberList.push_back(phoneNumber);
}
}
int j;
for(j=0;j<m_PhoneNumberList.size();j++)
{
TRACE("第%d个号码为: %s\n",j,m_PhoneNumberList[j]);
}
//这个代表格式出错
if(!isFormatRight)
{
m_PhoneNumberList.clear();
return FALSE;
}
return TRUE;
}
void CLoadPhoneNumber::Open(CString fileName)
{
m_fileStream.open(fileName,std::ios::in);
}
void CLoadPhoneNumber::Close()
{
m_fileStream.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -