?? dictment.h
字號:
#ifndef DICTMENT_H
#define DICTMENT_H
const int MAX_DEFINE_LINE_LEN = 100;
const int MAX_DIC_NUM = 159; // 原始的英漢詞典的文件個數
class ObWord:public CObject
{
public:
int m_nIndex;
void GiveVolue(int nIndex)
{
m_nIndex = nIndex;
}
};
const int MAX_SOU_LINE_LEN = 300; // 源詞典最大的一行的長度
typedef struct Slot{ // 槽
BOOL m_bIsTranRule; // 當前是翻譯規(guī)則還是槽
LPSTR m_pszSlotName; // 槽名
LPSTR m_pszSlotValue; // 槽值
Slot *m_pNextSlot; // 下一個槽
} Slot;
typedef struct ChinesePart{
LPSTR m_pszChinese; // 中文譯文
int m_nChineseLen; // 中文譯文長度
LPSTR m_pszCate; // 詞性
LPSTR m_pszHead; // 語義大類
Slot *m_pFirstSlot; // 第一個槽
Slot *m_pLastSlot; // 最后一個槽
Slot *m_pCurrSlot; // 當前正在操作的槽
ChinesePart *m_pNextPart; // 下一個中文譯文(義項)部分
} ChinesePart;
// 詞的類型定義
// 注意:
// 改動類型定義時請務必改動STYLE_FIRST和STYLE_LAST的值,
// 使 STYLE_FIRST 等于定義值等于類型定義的最小值,
// STYLE_LAST值等于類型定義的最大值
const int STYLE_FIRST = 0;
const int STYLE_ORIG = 0;
const int STYLE_ED = 1; // 過去時
const int STYLE_ING = 2; // 過去分詞
const int STYLE_IS = 3;
const int STYLE_S = 4;
const int STYLE_AM = 5;
const int STYLE_ARE = 6;
const int STYLE_ED1 = 7;
const int STYLE_ED2 = 8;
const int STYLE_LAST = 8;
// 注:上面類型的定義如果改動,請務必改動DictSearch::OutputNodeToFile
// 中對應的定義
const int MAX_SLOT_NAME_NUM = 100; // 最大的槽名數
class COneWord {
public:
COneWord();
~COneWord();
LPSTR m_pszEnglish; // 英文
int m_nEnglishLen; // 英文長度
BOOL m_bIsExistOrig; // 是否存在原形
// Eg:
// #abstracted\^abstract[ed]
// *心不在焉,Cate=A
// $
LPSTR m_pszOrig; // 原形
int m_nOrigLen;
int m_nWordStyle; // 詞的類型:過去式,進行式,
BOOL m_bIsExistAmbig; // 是否存在兼類
LPSTR m_pszAmbig; // 兼類內容
int m_nAmbigLen;
ChinesePart *m_pFirstChinese; // 第一個中文譯文
ChinesePart *m_pLastChinese; // 最后一個中文譯文
ChinesePart *m_pCurrChinese; // 當前正在操作的中文譯文
LPSTR m_pszDicName;
int m_nCurrReadLineNum; // 當前正在讀第幾行
CMapStringToOb m_mapCate; // Cate 的種類
CMapStringToOb m_mapHead; // Head 的種類
CMapStringToOb m_mapAmbig; // 兼類的種類
CMapStringToOb m_mapNoValueSlot; // 沒有槽值的槽的種類
int m_nSlotNameNum; // 槽名的數量
CStringArray m_arraySlotName; // 槽名的種類
CMapStringToOb m_mapSlotName; // 槽名的種類
CMapStringToOb m_mapSlotValue[MAX_SLOT_NAME_NUM]; // 槽值
BOOL FillMap(CMapStringToOb &mapName,FILE *fpDefine);
BOOL FillMapWithArray(CMapStringToOb &mapName,
CStringArray &arrayName,
int &nNameNum,FILE *fpDefine);
BOOL Init(LPSTR pszDefineName);
void FreeMap(CMapStringToOb &mapName);
void ExitInit();
public:
BOOL m_bIsWriteLog; // 是否寫錯誤說明
FILE *m_fpErrLogFile; // 錯誤說明文件
BOOL m_bIsWriteErrToDic; // 是否寫錯誤寫到詞典中
FILE *m_fpTarDic; // 帶錯誤標記的詞典文件
public:
BOOL SetEnglishOfWordItem(LPSTR pszEnglish,int nEnglishLen);
BOOL SetChiTextOfWordItem(LPSTR pszChinese,int nChineseLen);
BOOL SetCateOfWordItem(LPSTR pszCate,int nCateLen);
BOOL SetHeadOfWordItem(LPSTR pszHead,int nHeadLen);
BOOL SetOrigWord(LPSTR pszLeft);
BOOL SetAmbig(LPSTR pszLeft);
Slot *MakeSlot(BOOL bIsTranRule,LPSTR pszSlotName,
int nSlotNameLen,LPSTR pszSlotValue,
int nSlotValueLen);
BOOL SetSoltOfWordItem(LPSTR pszLeft);
BOOL SetChiPartOfWordItem(LPSTR pszChiPart);
BOOL ReadWordFromSouDict(FILE *fpSouFile,LPSTR pszSouName,FILE *fpTarDic,
BOOL &bIsEof);
void FreeSlotLink(Slot *pFirstSlot);
void FreeChineseLink();
void EmptyWordContent();
void GotoNextWordBegin(FILE *fpSouFile);
void GetEnglish(LPSTR &pszEnglish,int &nEngLen);
};
//yys 98.5.14 Bgn
//添加一個形參 szDicName
extern BOOL FormatCheck(LPSTR pszLogFile,LPSTR pszDefineName,LPSTR pszErrLineInfo,char *szDicName);
//yys 98.5.14 End
extern void DumpSlot(Slot *pCurrSlot,FILE *fpSlotName,
FILE *fpSlotValue,FILE *fpNoValuSlot,FILE *fpRule);
extern void DumpChinesePart(ChinesePart *pCurrChinese,
FILE *fpCate,FILE *fpHead,FILE *fpSlotName,
FILE *fpSlotValue,FILE *fpNoValuSlot,FILE *fpRule);
extern void DumpDict(BOOL bIsWriteErrorToLog,LPSTR pszLogFile,LPSTR pszDefineName);
extern BOOL RemoveErrorInfoFromDict();
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -