static public void SaveToBinFile(String fileName, T_DictFile dictFile) { Stream s = CSerialization.SerializeBinary(dictFile); s.Position = 0; CFile.WriteStream(fileName, (MemoryStream)s); }
public void Load(String fileName) { try { List <T_ChsNameWordTraffic> newWords = new List <T_ChsNameWordTraffic>(); if (!File.Exists(fileName)) { //字典文件不存在 return; } MemoryStream s = CFile.ReadFileToStream(fileName); s.Position = 0; object obj; CSerialization.DeserializeBinary(s, out obj); _Traffic = (T_ChsNameTraffic)obj; _Traffic.AfterCount = 0; _Traffic.AfterWordCount = 0; _Traffic.BeforeCount = 0; _Traffic.BeforeWordCount = 0; //整理姓名前缀后缀表 foreach (T_ChsNameWordTraffic wordTraffic in _Traffic.Words) { if (wordTraffic.Word.Length > 1) { if (wordTraffic.Word[0] >= 0x4e00 && wordTraffic.Word[0] <= 0x9fa5) { //是汉字,且长度大于2,才作为有效前后缀 newWords.Add(wordTraffic); if (wordTraffic.After > 0) { _Traffic.AfterCount += wordTraffic.After; _Traffic.AfterWordCount++; } if (wordTraffic.Before > 0) { _Traffic.BeforeCount += wordTraffic.After; _Traffic.BeforeWordCount++; } } } } _Traffic.Words = newWords; } catch { _Traffic = new T_ChsNameTraffic(); } foreach (T_ChsNameWordTraffic wordTraffic in _Traffic.Words) { _Table[wordTraffic.Word] = wordTraffic; } }
public void Save(String fileName) { Stream s = CSerialization.SerializeBinary(_Traffic); s.Position = 0; CFile.WriteStream(fileName, (MemoryStream)s); }
/// <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); }
static public T_DictFile LoadFromBinFile(String fileName) { MemoryStream s = CFile.ReadFileToStream(fileName); s.Position = 0; object obj; CSerialization.DeserializeBinary(s, out obj); return((T_DictFile)obj); }
protected virtual void WriteLog(string log) { try { CFile.WriteLine(LogFileName, string.Format("{0} {1}", DateTime.Now, log), "utf-8"); } catch { } }
static public void SaveToTextFile(String fileNmae, T_DictFile dictFile) { if (dictFile.Dicts == null) { return; } StringBuilder dictStr = new StringBuilder(); foreach (T_DictStruct dict in dictFile.Dicts) { dictStr.AppendFormat("{0}|{1}\r\n", dict.Word, dict.Pos); } CFile.WriteString(fileNmae, dictStr.ToString(), "utf-8"); }
private CGetCurrentDir() { System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess(); _ProcessDir = p.MainModule.FileName; _ProcessDir = CFile.GetPath(_ProcessDir); }