Abusive.cpp
上传用户:szopptop
上传日期:2013-04-23
资源大小:1047k
文件大小:1k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. CWHAbusive::CWHAbusive()
  3. {
  4. }
  5. CWHAbusive::~CWHAbusive()
  6. {
  7. }
  8. BOOL CWHAbusive::LoadAbusiveList()
  9. {
  10. FILE *stream = fopen("Abusive.txt", "r");
  11. if (stream)
  12. {
  13. while(!feof(stream))
  14. {
  15. fscanf(stream, "%s", m_szAbusiveList[m_nCount]);
  16. m_nCount++;
  17. }
  18. fclose(stream);
  19. InsertLogMsgParam(IDS_LOAD_ABUSIVE, &m_nCount, LOGPARAM_INT);
  20. return TRUE;
  21. }
  22. else
  23. InsertLogMsg(IDS_LOADFAIL_ABUSIVE);
  24. return FALSE;
  25. }
  26. void CWHAbusive::ChangeAbusiveText(char *pszText)
  27. {
  28. int nChange;
  29. char *pszSrc, *pszFilter;
  30. for (int i = 0; i < m_nCount; i++)
  31. {
  32. pszSrc = pszText;
  33. pszFilter = &m_szAbusiveList[i][0];
  34. nChange = 0;
  35. while (*pszSrc)
  36. {
  37. if (*pszSrc == *pszFilter)
  38. {
  39. nChange++;
  40. while (*pszFilter != 0)
  41. {
  42. if (*++pszSrc != *++pszFilter) break;
  43. nChange++;
  44. }
  45. if (*pszFilter == 0 && nChange >= (int)(memlen(&m_szAbusiveList[i][0]) - 1))
  46. {
  47. for (int nCnt = nChange; nCnt > 0; nCnt--)
  48. *(pszSrc - nCnt) = '*';
  49. }
  50. pszFilter = &m_szAbusiveList[i][0];
  51. nChange = 0;
  52. }
  53. pszSrc++;
  54. }
  55. }
  56. }