⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cloadphonenumber.cpp

📁 使用短信猫可以实现短信的群发
💻 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 + -