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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值