Exemplo n.º 1
0
bool PathMgr::DoesMatchNameSub(const char *pattern, const char *fileName, bool ignoreCaseFlag)
{
	if (*pattern == '\0') {
		return *fileName == '\0';
	} else if (*pattern == '*') {
		return DoesMatchNameSub(pattern + 1, fileName, ignoreCaseFlag) ||
			(*fileName != '\0' && DoesMatchNameSub(pattern, fileName + 1, ignoreCaseFlag));
	} else if (*pattern == '?') {
		return *fileName != '\0' && DoesMatchNameSub(pattern + 1, fileName + 1, ignoreCaseFlag);
	} else if (*pattern == '[') {
		pattern++;
		if (*pattern == '!') {
			pattern++;
			for ( ; *pattern != ']' && *pattern != '\0'; pattern++) {
				if (CompareChar(*fileName, *pattern, ignoreCaseFlag) == 0) return false;
			}
		} else {
			for ( ; *pattern != ']' && *pattern != '\0'; pattern++) {
				if (CompareChar(*fileName, *pattern, ignoreCaseFlag) != 0) return false;
			}
		}
		if (*pattern == ']') pattern++;
		return DoesMatchNameSub(pattern, fileName + 1, ignoreCaseFlag);
	} else {
		return CompareChar(*pattern, *fileName, ignoreCaseFlag) == 0 &&
						DoesMatchNameSub(pattern + 1, fileName + 1, ignoreCaseFlag);
	}
}
Exemplo n.º 2
0
const char *FindString(const char *str, const char *sub, bool ignoreCaseFlag)
{
	for ( ; *str != '\0'; str++) {
		const char *p1 = str, *p2 = sub;
		for ( ; *p2 != '\0'; p1++, p2++) {
			if (CompareChar(*p1, *p2, ignoreCaseFlag) != 0) break;
		}
		if (*p2 == '\0') return str;
	}
	return nullptr;
}
Exemplo n.º 3
0
String::const_iterator FindString(String::const_iterator str,
		String::const_iterator strEnd, const String &sub, bool ignoreCaseFlag)
{
	for ( ; str != strEnd; str++) {
		String::const_iterator p1 = str;
		String::const_iterator p2 = sub.begin();
		for ( ; p2 != sub.end(); p1++, p2++) {
			if (CompareChar(*p1, *p2, ignoreCaseFlag) != 0) break;
		}
		if (p2 == sub.end()) return str;
	}
	return strEnd;
}
void CCallHistoryDlg::OnButtonAbstract() 
{
    int nCurSel;
    
    if(m_pHistData->IsEmpty(m_DispFilter))
        return;

    if((nCurSel = m_lstHist.GetNextItem(-1, LVNI_SELECTED)) == -1)
    {
        AfxMessageBox(IDS_NOITEMSEL, MB_OK | MB_ICONINFORMATION);
        return;
    }

    if(m_pPbData->CheckFull())
    {
        AfxMessageBox(IDS_PB_FULL);
        return;
    }
 
    CString strUnknown;
    strUnknown.LoadString(IDS_UNKNOWN);
    
    WORD nIndex = m_DspIndexArr[m_DispFilter][nCurSel];
    ASSERT(nIndex < m_pHistData->GetCount(m_DispFilter));

    stHistItem HistItem;
    memset(&HistItem, 0x00, sizeof(stHistItem));
    HistItem = m_pHistData->GetItem(m_DispFilter, nIndex);

    if(wcslen((TCHAR*)HistItem.szNumber) > 0
        && wcscmp((TCHAR*)HistItem.szNumber, strUnknown))
    {
        if(CompareChar((TCHAR*)HistItem.szNumber))
        {
            CSelPosition dlg(this, (TCHAR *)HistItem.szNumber);
            dlg.DoModal();
            DispCallHistory();
        }
    }
    else
        AfxMessageBox(IDS_SELCONNECT_NULLNUM);
}
Exemplo n.º 5
0
int FindWithWildcards(const wchar_t* source, const wchar_t* findstring, size_t len)
{
	wchar_t cmp[3] = {0};
	int findlen = ceil(((double)wcslen(findstring) / 2));
	if(len < findlen)
		return -1;

	for(int i = 0; i < len; i++)
	{
		for(int j = 0; j < findlen; j++)
		{
			wcsncpy(cmp, findstring + j * 2, 2);
			if(!CompareChar(source[i+j], cmp))
				break;
			else if(j == (findlen - 1))
				return i;
		}
	}
	return -1;
}
//检查联系人内容是否符合规范
bool CGetOutlookPBDlg::CheckContactRule(StPbRecord *pPBRecord)
{
	bool bCheckRes = false;
	//检查姓名是否符合规范
	CString strName = _T("");
	strName.Format(pPBRecord->strName);

	if(0 != strName.GetLength())
	{	
		bCheckRes = CheckPbNameUnicode(strName);
		if(!bCheckRes)
		{
			return false;
		}
		if(VCARD_NAME_MAX < strName.GetLength())
		{
			strName = strName.Left(VCARD_NAME_MAX);							
		}
        memcpy(pPBRecord->strName,strName,strName.GetLength());
		//AfxMessageBox(mphb.strName);
	}
	//检查Mobile是否符合规范
	bCheckRes = false;
	CString strMobile = _T("");
	strMobile.Format(pPBRecord->strMobile);
	USES_CONVERSION;

    if (0 != strMobile.GetLength())
	{		
		if(!CheckPbNumber(strMobile))
		{
			return false;
		}
		if(VCARD_NUM_MAX < strMobile.GetLength())
		{
			strMobile = strMobile.Left(VCARD_NUM_MAX);							
		}
		if (!CompareChar(strMobile))
		{
			return false;
		}
		
        memcpy(pPBRecord->strMobile,strMobile,strMobile.GetLength());
	}
	//检查Home是否符合规范
	bCheckRes = false;
	CString strHome = _T("");
	strHome.Format(pPBRecord->strHome);

    if (0 != strHome.GetLength())
	{
		if(!CheckPbNumber(strHome))
		{
			return false;
		}
		if(VCARD_NUM_MAX < strHome.GetLength())
		{
			strHome = strHome.Left(VCARD_NUM_MAX);							
		}
		if (!CompareChar(strHome))
		{
			return false;
		}
		
        memcpy(pPBRecord->strHome,strHome,strHome.GetLength());
	}
	//检查Company是否符合规范
	bCheckRes = false;
	CString strCompany = _T("");
	strCompany.Format(pPBRecord->strCompany);

    if (0 != strCompany.GetLength())
	{
		if(!CheckPbNumber(strCompany))
		{
			return false;
		}
		if(VCARD_NUM_MAX < strCompany.GetLength())
		{
			strCompany = strCompany.Left(VCARD_NUM_MAX);							
		}
		if (!CompareChar(strCompany))
		{
			return false;
		}
	
        memcpy(pPBRecord->strCompany,strCompany,strCompany.GetLength());
	}
	//检查Email是否符合规范
	bCheckRes = false;
	CString strEmail = _T("");
	strEmail.Format(pPBRecord->strCompany);
    if (0 != strEmail.GetLength())
	{						
		if(VCARD_EMAIL_MAX < strEmail.GetLength())
		{
			strEmail = strEmail.Left(VCARD_EMAIL_MAX);							
		}

        memcpy(pPBRecord->strEmail,strEmail,strEmail.GetLength());
	}
	return true;
}