您的位置:首页 > 其它

MFC CString 查找函数使用的三个失误

2012-11-28 10:05 363 查看
// TODO: Add your control notification handler code here
//打开hdr文件(因为以前判断过,所以知道这个文件肯定存在能打开)
CStdioFile hdrFile;
hdrFile.Open("d:\\1.txt",CFile::modeReadWrite);

//验证hdr文件
CString strHdrLine;
CString sip;CString spt;CString dip;CString dpt;CString ctm;
CString pictureName;
while(hdrFile.ReadString(strHdrLine))
{
int start=strHdrLine.Find(_T(":"));
int end=strHdrLine.FindOneOf(_T(";"));
CString val=strHdrLine.Mid(start+2,end-start);
CString fre=strHdrLine.Left(4);
if(fre.Compare("_sip")==0)
{
sip=val;AfxMessageBox("sip:"+val);
}
else if(fre.Compare("_spt")==0)
{
spt=val;AfxMessageBox("spt:"+val);
}
else if(fre.Compare("_dip")==0)
{
dip=val;AfxMessageBox("dip:"+val);
}
else if(fre.Compare("_dpt")==0)
{
dpt=val;AfxMessageBox("dpt:"+val);
}
else if(fre.Compare("_ctm")==0)
{
ctm=val;AfxMessageBox("ctm:"+val);
}
}
//关闭hdr文件


上面的这个代码是正确的

以前的代码是错误的

错误点1:在使用find这个函数的时候,一定要用_T("")这个东西,不然的话“:”和“;”可能会匹配不出来

错误点2:mid,第一个参数是开始的位置,第二个参数是截取的字符串的长度

错误点3:find函数如果找到的话,返回的是位置,可能是0,可能是整数,所以判断查找到的表达是find()>=0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: