// 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