QString字符转换

来源:互联网 发布:数据挖掘 毕业论文 编辑:程序博客网 时间:2024/05/11 09:55

QString字符转换

BYTE数组转QString

BYTEbyteTemp[16];

memset(byteTemp,0,16); 

//BYTE数组转换为QString类型

QString NFCTest::BYTEToQString(constBYTE *byteBuffer,const int nSize)

{

     QString qstrData;

     char pBuff[3];

     for(int i = 0;i < nSize;i++)

     {

          sprintf(pBuff,"%.2x ",byteBuffer[i]);

          qstrData += pBuff;

     }

     return qstrData;

}

QStringBYTE数组

//QString类型拆分为BYTE类型

void NFCTest::QStringToBYTE(constQString strData,BYTE** byteData,int& byteLen)

{

     QString qstrNoNull = strData.trimmed();

     QStringList qstrData = qstrNoNull.split('|');

     int strLen = qstrData.length();

     for(int i = 0;i < qstrData.length();i++)

     {

          if(qstrData.at(i) == "")

          {

                strLen--;

          }

     }

     byteLen = strLen;

 

     (*byteData) = new BYTE[byteLen];

     for(int i = 0;i < byteLen;i++)

     {

          QString strTemp = qstrData.at(i);

          (*byteData)[i] = QString2QCharToByte(strTemp);

     }

}

 

//QString转换为BYTE,如"23"-x23

BYTE NFCTest::QString2QCharToByte(constQString str_arr) 

{ 

   unsigned char ch1 = 0; 

   unsigned char ch2 = 0; 

   int k = 0; 

 

     BYTE byteChar = 0;

     int len = str_arr.length();

 

     if(len == 1)

     {

          ch1 = 'f';

          ch2 = str_arr.at(0).cell();

     }

     else if(len == 2)

     {

          ch1 = str_arr.at(0).cell();

          ch2 = str_arr.at(1).cell();

     }

     else

     {

          ch1 = 'f';

           ch2= 'f';

     }

 

   if (ch1 >= 48 && ch1 <=57) 

   { 

       ch1 &= 0x0F; 

   } 

   else if ((ch1 >= 'A' && ch1<= 'F') ||  (ch1 >= 'a' && ch1<= 'f'))

   { 

       ch1 &= 0x0F; 

       ch1 += 0x09; 

   }

     else

     {

          ch1 = 0x0F;

     }

 

   if (ch2 >= 48 && ch2 <=57) 

   { 

       ch2 &= 0x0F; 

   } 

   else if((ch2 >= 'A' && ch2 <='F') ||  (ch2 >= 'a' && ch2<= 'f'))

   { 

       ch2 &= 0x0F; 

       ch2 += 0x09; 

   }

     else

     {

          ch2 = 0x0F;

     }

 

   ch1<<=4; 

   byteChar = ch1 + ch2;

     return byteChar;

}

0 0
原创粉丝点击