// ?代表一个字符,*代表n个字符
BOOL WildCard(CString strWildCard, CString strTestText, BOOL &bMatch)
{
if(strWildCard.IsEmpty() && strTestText.IsEmpty())
{
bMatch = TRUE;
return TRUE;
}
else if(strWildCard.IsEmpty() || strTestText.IsEmpty())
{
return FALSE;
}
else
{
if((0==strWildCard.Left(1).Compare("?"))
|| (0 == strWildCard.Left(1).Compare(strTestText.Left(1))))
{
strWildCard = strWildCard.Mid(1);
strTestText = strTestText.Mid(1);
return WildCard(strWildCard, strTestText, bMatch);
}
else if(0 == strWildCard.Left(1).Compare("*"))
{
strTestText = strTestText.Mid(1);
CString strWildCardTemp = strWildCard;
CString strTestTextTemp = strTestText;
if(!WildCard(strWildCard, strTestText, bMatch))
{
strWildCard = strWildCardTemp;
strTestText = strTestTextTemp;
strWildCard = strWildCard.Mid(1);
return WildCard(strWildCard, strTestText, bMatch);
}
}
else
{
return FALSE;
}
}
}