/// <summary> /// 从文本文件读取字典 /// </summary> /// <param name="fileName"></param> static public T_DictFile LoadFromTextDict(String fileName) { T_DictFile dictFile = new T_DictFile(); String dictStr = CFile.ReadFileToString(fileName, "utf-8"); String[] words = CRegex.Split(dictStr, "\r\n"); foreach (String word in words) { String[] wp = CRegex.Split(word, @"\|"); if (wp == null) { continue; } if (wp.Length != 2) { continue; } int pos = 0; try { pos = int.Parse(wp[1]); } catch { continue; } T_DictStruct dict = new T_DictStruct(); dict.Word = wp[0]; dict.Pos = pos; if (dict.Word.Contains("一") || dict.Word.Contains("二") || dict.Word.Contains("三") || dict.Word.Contains("四") || dict.Word.Contains("五") || dict.Word.Contains("六") || dict.Word.Contains("七") || dict.Word.Contains("八") || dict.Word.Contains("九") || dict.Word.Contains("十")) { dict.Pos |= (int)T_POS.POS_A_M; } if (dict.Word == "字典") { dict.Pos = (int)T_POS.POS_D_N; } dictFile.Dicts.Add(dict); } return(dictFile); }
/// <summary> /// 从文件加载单字词 /// </summary> /// <param name="fileName"></param> /// <returns></returns> static public IEnumerable <string> LoadSingleWordFromFile(string fileName) { if (!System.IO.File.Exists(fileName)) { yield break; } string content = CFile.ReadFileToString(fileName, "utf-8"); foreach (char c in content) { if (c >= 0x4e00 && c <= 0x9fa5) { yield return(c.ToString()); } } }
private void BatchInsert(String fileName, String encoder) { String content = CFile.ReadFileToString(fileName, encoder); String[] words = CRegex.Split(content, @"\r\n"); bool allUse = false; T_DictStruct lstWord = null; foreach (String word in words) { if (word == null) { continue; } if (word.Trim() == "") { continue; } FormBatchInsert frmBatchInsert = new FormBatchInsert(); if (!allUse || lstWord == null) { frmBatchInsert.Word.Word = word.Trim(); if (frmBatchInsert.ShowDialog() == DialogResult.OK) { lstWord = frmBatchInsert.Word; allUse = frmBatchInsert.AllUse; m_DictManage.InsertWord(lstWord.Word, lstWord.Frequency, lstWord.Pos); } } else { lstWord.Word = word.Trim(); m_DictManage.InsertWord(lstWord.Word, lstWord.Frequency, lstWord.Pos); } } }