TypeChange.cpp
上传用户:lx6688
上传日期:2016-01-30
资源大小:46k
文件大小:2k
源码类别:

网络截获/分析

开发平台:

Visual C++

  1. // TypeChange.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "sendudp.h"
  5. #include "TypeChange.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CTypeChange dialog
  13. CTypeChange::CTypeChange()
  14. {
  15. //{{AFX_DATA_INIT(CTypeChange)
  16. // NOTE: the ClassWizard will add member initialization here
  17. //}}AFX_DATA_INIT
  18. }
  19. bool CTypeChange::IsHexString(CString str)
  20. {
  21. int i;
  22. int strLen;
  23. str.TrimLeft();
  24. str.TrimRight();
  25. str.MakeUpper();
  26. strLen = str.GetLength();
  27. for(i=0; i<strLen; i++)
  28. {
  29. if((i+1)%3==0)
  30. {
  31. if(str[i]!=' ') return false;
  32. }
  33. else
  34. {
  35. if (str[i]<'0'||
  36. str[i]>'F'||
  37. (str[i]>'9'&& str[i]<'A'))
  38. return false;
  39. }
  40. }
  41. return true;
  42. }
  43. /*
  44. 将输入的string转换为char数组,"5d 5d 5d ab"=>{5d, 5d, 5d, ab};
  45. len: dest可以接受的最大长度;
  46. return: >=0 完成转换的长度(dest中有效值的长度)
  47. ==-1 输入数据格式错误
  48. */
  49. int  CTypeChange::cstr2hex(CString src, char *dest, int len)
  50. {
  51. int i, srcLen, destLen;
  52. src.TrimLeft();
  53. src.TrimRight();
  54. src.MakeUpper();
  55. srcLen  = src.GetLength();
  56. destLen = 0;
  57. if(!IsHexString(src))
  58. return -1;
  59. for(i=0; i<len; i++)
  60. {
  61. if(!src.IsEmpty())
  62. {
  63. //dest[i] = atoi(src);
  64. sscanf(src, "%x", &(dest[i]));
  65. destLen++;
  66. if (src.Delete(0,3)<3) break;
  67. }
  68. else
  69. break;
  70. }
  71. return destLen;
  72. }
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CTypeChange message handlers