void CMTKSNDlg::Onreadsn()
{
CString buff="AT+ESLP=0\n";
CString buff1="AT+EGMR=0,5\n";
CString readbuff;
readbuff.Empty();
//char rb[400]="";
CString b,e;
int i=0;
for(i=0;i<5;i++)
{
m_com.WriteComm((char*)(LPCTSTR)buff,10);
m_com.ReadComm((char*)(LPCTSTR)readbuff,200);
if(-1!=readbuff.Find("OK",0))
{ m_com.WriteComm((char*)(LPCTSTR)buff1,12);
m_com.ReadComm((char*)(LPCTSTR)readbuff,400); //"AT+EGMR=0,5
//
//+EGMR: "324322322290292292294291288"
//
//OK
//xdbcs.cpp"
//这部分是readbuff读取到的内容,然后我要取引号中间的内容,所以就 int beg=temp.readbuff("\"",0)+1; //这个查找结果正确
int end=temp.readbuff("\"",beg); //直接报异常
CString sn=readbuff.Mid(beg,end-beg);// readbuff.GetAt(0);//也报异常
readbuff.ReleaseBuffer(); //也报异常,总感觉操作不了读回来CString
return;
}
}
MessageBox("read Fail");
}
int beg=readbuff.Find("\"",0)+1;
int end=readbuff.Find("\"",beg);
int end=readbuff.readbuff("\"",beg); //直接报异常笔误,正常应该是这个用其他的CString是正确的,就是从串口读出来的内容放在CString中就操作不了了
比如 GetAt(0);//也报异常
ReleaseBuffer(); //也报异常,//这样OK
CString readbuff="213123 3243434 gerg \"0000000\" ertgeergregh "
int beg=readbuff.readbuff("\"",0)+1; //这个查找结果正确
int end=readbuff.readbuff("\"",beg); //直接报异常
CString sn=readbuff.Mid(beg,end-beg);//sn="0000000"
{
CString buff="AT+ESLP=0\n";
CString buff1="AT+EGMR=0,5\n";
CString readbuff;
readbuff.Empty();
//char rb[400]="";
CString b,e;
int i=0;
for(i=0;i<5;i++)
{
m_com.WriteComm((char*)(LPCTSTR)buff,10);
m_com.ReadComm((char*)(LPCTSTR)readbuff.GetBuffer(),200);
readbuff.ReleaseBuffer();
if(-1!=readbuff.Find("OK",0))
{ m_com.WriteComm((char*)(LPCTSTR)buff1,12);
m_com.ReadComm((char*)(LPCTSTR)readbuff.GetBuffer(),400);
readbuff.ReleaseBuffer(); //"AT+EGMR=0,5
//
//+EGMR: "324322322290292292294291288"
//
//OK
//xdbcs.cpp"
//这部分是readbuff读取到的内容,然后我要取引号中间的内容,所以就 int beg=temp.readbuff("\"",0)+1; //这个查找结果正确
int end=temp.readbuff("\"",beg); //直接报异常
CString sn=readbuff.Mid(beg,end-beg);// readbuff.GetAt(0);//也报异常 return;
}
}
MessageBox("read Fail");
}