请教CString 字串中子串的提取.0040000000010100001010101010101010 10101010101010101010101010080145014500000000000010000008 01450000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000063000001B40000 00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000 000000000031* 我想去前面"0040000000"后面"31* ";请问怎么做呀!我
刚开始学VC++!谢谢!多多指教!
可以了!又有新问题了啊!
我自己做了一个对话框.上有5个从下位机读取数值显示数据,我读取一个数值运行时,显示刷新都OK!F5多个也OK!我读取多个数值运行时!就报错!找不到问题所在.......!
....................................
UpdateData (FALSE);
receiverhandle();
UpdateData (FALSE);
.................................
void CTranscomnDlg::receiverhandle()
{
int k=0;
CString tempstr=m_response.Left(23);
iCount=m_response.GetLength()-4;
m_receivernumber=m_response.GetLength()-27;
if(m_receivernumber<4)
{
m_receivernumber=0;
}
else
{
if(tempstr=="@00FA004000000001010000")
{
m_irbox=m_response.Mid(23,m_receivernumber);
}
}
k=m_irbox.GetLength();
if(k>=4)
{
for(k=0,str=m_irbox;k<m_receivernumber;k+=4)
{
switch (k)
{
case 0:
CString_to_int(str.Mid(k,k+4),m_data3);
break;
case 4:
CString_to_int(str.Mid(k,k+4),m_data4);
break;
case 8:
CString_to_int(str.Mid(k,k+4),m_data5);
break;
case 12:
CString_to_int(str.Mid(k,k+4),m_data6);
break;
default:
break;
}
}
}
}
void CTranscomnDlg::CString_to_int(CString midx,int& intok)
{
intok=0;
int y,i=4;
char s;
for (int j=0;i>0;j++)
{
i--;
s=midx.GetAt(j);
if(s>='A')
y=s-'A'+10;
else
y=s-'0';
int bobo=int(pow(16,i));
intok+=y*bobo;
}
}
.........................................
刚开始学VC++!谢谢!多多指教!