请教CString 字串中子串的提取.

来源:互联网 发布:软件需求 三方面 编辑:程序博客网 时间:2024/05/29 13:31

请教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++!谢谢!多多指教!

原创粉丝点击