📄 filteringtable.h
字号:
// FilteringTable.h: interface for the CFilteringTable class.
//
//////////////////////////////////////////////////////////////////////
#ifndef _CFILTERINGTABLE_H_
#define _CFILTERINGTABLE_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#define FILTER_TEST
#define FILTERTABLE CFilteringTable::GetInstance()
#define FILEPATH_FILTERWORD "./Resource/FilterWord.txt"
enum FILTERKIND
{
eFilter_GM,
eFilter_System,
eFilter_Slang,
eFilter_Count,
};
enum eFILTER_METHOD
{
// 抗) 宫氢捞 鞘磐窜绢老 锭
eFM_WHOLE_MATCH, //-> 宫氢 : 八免
eFM_INCLUDE, //-> 唱宫氢 : 八免
eFM_ALLOWSPACE, //-> 唱宫磊氢 : 八免
};
struct FILTER_NODE
{
char cChar;
char cExChar;
char bSpread;
char bEndFlag;
FILTER_NODE* pChild;
FILTER_NODE* pSibling;
FILTER_NODE* pParent;
FILTER_NODE():pChild(0),pSibling(0),pParent(0),bSpread(0),bEndFlag(0),cExChar(0),cChar(0) {}
};
class CFilteringTable
{
protected:
FILTER_NODE m_RootNode[eFilter_Count];
int m_nStrPos;
char* m_strFile;
//吝埃俊 茫栏搁 辆丰窍扁 困茄 函荐甸
BOOL m_bSearched;
BOOL m_bSpread;
char m_strBuf[256];
//
#ifdef FILTER_TEST
int m_nMemory;
#endif
protected:
void AddWord( char* pWord, int nKind );
void AddNode( FILTER_NODE* pNode, char* pWord );
void DeleteNode( FILTER_NODE* pNode );
void CleanNode( FILTER_NODE* pNode );
void SearchNode( FILTER_NODE* pNode, char* pStr, int nDepth, BOOL bDBC );
void SearchNode_AllowSpace( FILTER_NODE* pNode, char* pStr, BOOL bDBC );
BOOL LoadFilterWord( char* strFile );
BOOL LoadFilterWordBinary( char* strFile );
void SettingFilterWord( char* pStr, DWORD bufLen );
BOOL FM_WholeMatch( char* pStr, int nKind );
BOOL FM_Include( char* pStr, int nKind );
BOOL FM_AllowSpace( char* pStr, int nKind, int nAllowSpace );
int RemoveSpace( char* pStrIn, char* pStrOut );
public:
CFilteringTable();
virtual ~CFilteringTable();
MAKESINGLETON( CFilteringTable )
void Init();
void Release();
BOOL FilterWordInString( char* pStr, int nKind, int nMethod );
BOOL IsInvalidCharInclude( unsigned char* pStr );
BOOL IsUsableName( char* pName );
BOOL FilterChat( char* pChat );
#ifdef _FILTER_TEST_
int GetMemory() { return m_nMemory; }
#endif
};
#endif // _CFILTERINGTABLE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -