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

来源:互联网 发布:小票模板软件 编辑:程序博客网 时间:2024/06/14 10:55
// 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

原创粉丝点击