尽量不要用find/left/mid等函数,而是不回溯的一次遍历
MFC读取文件、处理数据优化问题,处理数据时速度太慢????????
怎么让这个程序处理数据快一点
//MAC地址处理代码
CStdioFile file;
int i;
CString str1,strd;
file.Open("F:\h1.txt",CFile::modeRead); //h1.txt是串口接收到的MAC地址数据包文件
for(i=0;file.ReadString(str1);i++)
{
str1.MakeUpper(); //h1.txt中字母大写
//开始标志
if(str1.Find('*')>=0) //该行str1中有字符“*”?
{
CTime ct=CTime::GetCurrentTime(); //获取系统当前时间
CString time=ct.Format("%Y.%m.%d.%H:%M:%S."); //CTime转换成CString
strd += time + "\t数据包开始,包含" + str1.Mid(2,str1.Find('%')-2) + "个MAC地址:"; //EDIT显示
strd += "\r\n";
}
//结束标志
else if(str1.Find('@')>=0) //该行str1中有字符‘@’?
{
strd += "数据包结束!!!";
strd += "\r\n";
}
//处理MAC地址
else
{
CStdioFile read;
CString str11;
int j;
BOOL bResult = FALSE; //BOOL用来结束循环
read.Open("F:\z2.txt",CFile::modeRead); //z2.txt是标志MAC地址与厂商库文件
for(j=0;read.ReadString(str11);j++)
{
CString buf1[5000],buf2[5000],buf3[5000];
buf1[i]=str1.Mid(0,6); //读取str1中每行0-6位之前的内容到buf1, str1.Mid(0,str1.Find('\r')-3)
buf2[j]=str11.Left(str11.Find(' ')); //读取str11中每行空格符之前的内容到buf2
buf3[j]=str11.Mid(str11.Find('\t')+2).Trim(); //读取str11中(‘\t’+2)之后部分到buf3
//判断 buf1 与 buf2 关系
if(buf2[j] == buf1[i])
{
strd += "MAC地址:"+str1.Mid(0,12)+"\t厂商:"+buf3[j];
strd += "\r\n";
bResult = TRUE; //bResult置1
break; //结束,
}
}//该for循环结束,开始读取str1下一行
//
if (!bResult) //
{
strd+="MAC地址:"+str1.Mid(0,12)+"\t厂商:NULL";
strd+="\r\n";
}
}
}
SetDlgItemText(IDC_EDIT2,strd);
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
1条回答
为你推荐
- MFC平台能使用xlnt库吗?
- c++
- 13个回答
- VS+MFC+opengl系统开发的问题?(初学)
- c++
- visual studio
- 1个回答
- VS中的MFC显示未定义标识符?
- c++
- visual studio
- 2个回答
- MFC怎么用已读数据画波形图?
- c++
- 1个回答
- 哪个软件用来编MFC比较好?
- c#
- c++
- 5个回答
- MFC如何将数据显示在编辑框中?
- 开发语言
- c++
- c语言
- 3个回答
- MFC CListCtrl 内部是如何维护和显示数据的??
- mfc
- clistctrl
- 1个回答
- 在MFC中使用fstream读取不到文件为什么?
- mfc
- 1个回答
- MFC listCtrl checkbox选中和单击选中能分别吗?
- mfc
- c++
- 1个回答
- MFC DockablePane 窗口,为什么移动窗口边框会有混乱?
- mfc
- 2个回答
- MFC中怎么把系统输出的写入到文本中?
- mfc
- 7个回答
- MFC 编译提示 找不到此类文件或者目录??这是什么问题
- mfc
- 图片
- class
- 3个回答
- 如何点击MFC按钮调用exe文件?
- exe
- mfc
- 3个回答
- 如何在MFC项目中添加头文件?
- mfc
- 1个回答
- mfc串口通信中如何进行发数据的操作?
- 2个回答
- MFC中如何实现鼠标滚轮修改编辑框中的数据?
- 3个回答
- 如何从数据库中读取图片并显示在MFC picture控件当中?
- 1个回答
- MFC 如何创建txt格式文件?
- mfc
- c++
- 3个回答
- Mfc与图像处理关于读取二进制图像数据
- 二进制数据
- mfc
- opencv
- 1个回答
- 关于MFC读取文件抛出异常处理
- 读取文件
- mfc
- 异常处理
- 5个回答