请教数据类型的转换及存储问题。(100分)
我用的是MSCOMM控件,
1。想把从串口得到的数据(单片机的信号)放在数组里再进行校验,大概每35个字符判断一次,下面的str是CSTRING型,怎样转换成char或其它类型的数组(如:char temp〔35〕)?
2。判断temp〔〕中是否出现所需帧的帧头及帧尾后把需要的那部分再放在另一个数组(如buffer[])里该怎样做?
3。如果要对buffer[]里的数据进行逐位校验又该如何做呢?
我刚学,真的不知道该怎样,请大家多多帮忙,谢谢。
void CCommDlg::OnComm()
{
VARIANT m_input1;
COleSafeArray m_input2;
long length,i;
BYTE data[1024];
CString str;
if(m_Comm.GetCommEvent()==2)//接收缓冲区内有字符
{
m_input1=m_Comm.GetInput();//读取缓冲区内的数据
m_input2=m_input1;//将VARIANT型变量转换为ColeSafeArray型变量
length=m_input2.GetOneDimSize();//确定数据长度
for(i=0;i<length;i++)
m_input2.GetElement(&i,data+i);//将数据转换为BYTE型数组
for(i=0;i<length;i++)//将数组转换为Cstring型变量
{
BYTE a=* (char *)(data+i);
if(m_hex.GetCheck())
str.Format("%02X ",a);
else str.Format("%c",a);
/////////////////////////////////////////
m_ReceiveData+=str;
}
}
UpdateData(FALSE);//更新编辑框内容
}