Esempio n. 1
0
        public string ExportLine(WordLibrary wl)
        {
            var sb = new StringBuilder();

            if (codeGenerater == null)
            {
                codeGenerater = CodeTypeHelper.GetGenerater(CodeType);
            }
            if (codeGenerater.Is1CharMutiCode)
            {
                IList <string> codes = codeGenerater.GetCodeOfString(wl.Word);
                int            i     = 0;
                foreach (string code in codes)
                {
                    sb.Append(wl.Word);
                    sb.Append("\t");
                    sb.Append(code);
                    sb.Append("\t");
                    sb.Append(wl.Count);
                    i++;
                    if (i != codes.Count)
                    {
                        sb.Append("\r\n");
                    }
                }
            }
            else
            {
                sb.Append(wl.Word);
                sb.Append("\t");
                if (CodeType == CodeType.Pinyin || CodeType == CodeType.TerraPinyin)
                {
                    sb.Append(wl.GetPinYinString(" ", BuildType.None));
                }
                else if (CodeType == wl.CodeType)
                {
                    sb.Append(wl.Codes[0][0]);
                }
                else
                {
                    if (codeGenerater.Is1Char1Code)
                    {
                        sb.Append(CollectionHelper.ListToString(codeGenerater.GetCodeOfString(wl.Word), " "));
                    }
                    else
                    {
                        sb.Append(CollectionHelper.ListToString(codeGenerater.GetCodeOfString(wl.Word)));
                    }
                }
                sb.Append("\t");
                sb.Append(wl.Count);
            }
            return(sb.ToString());
        }
Esempio n. 2
0
        public void TestOneWord(string c, string code)
        {
            var codes = generater.GetCodeOfString(c);

            foreach (var code1 in codes)
            {
                Debug.WriteLine(code1);
                if (code == code1)
                {
                    Assert.Pass("Pass");
                    return;
                }
            }
            Assert.Fail("not matched code," + c);
        }
Esempio n. 3
0
        public string ExportLine(WordLibrary wl)
        {
            var sb = new StringBuilder();

            sb.Append(wubiFactory.GetCodeOfString(wl.Word)[0]);
            sb.Append(" ");
            sb.Append(wl.Word);

            return(sb.ToString());
        }
Esempio n. 4
0
        /// <summary>
        /// 将一行纯文本转换为对象
        /// </summary>
        /// <param name="line"></param>
        /// <returns></returns>
        public virtual WordLibraryList ImportLine(string line)
        {
            var py = pinyinFactory.GetCodeOfString(line);
            var wl = new WordLibrary();

            wl.Word   = line;
            wl.PinYin = ToArray(py);
            var wll = new WordLibraryList();

            wll.Add(wl);
            return(wll);
        }
        public override WordLibraryList ImportLine(string line)
        {
            string[] c    = line.Split(' ');
            var      wl   = new WordLibrary();
            string   code = c[0];

            wl.Word = c[1];
            wl.Rank = DefaultRank;
            wl.SetCode(CodeType.Cangjie, pyGenerater.GetCodeOfString(wl.Word));
            wl.SetCode(CodeType, code);
            var wll = new WordLibraryList();

            wll.Add(wl);
            return(wll);
        }
Esempio n. 6
0
        public WordLibraryList ImportLine(string line)
        {
            string[] c    = line.Split(' ');
            var      wl   = new WordLibrary();
            string   code = c[0];

            wl.Word   = c[1];
            wl.Count  = DefaultRank;
            wl.PinYin = CollectionHelper.ToArray(pyGenerater.GetCodeOfString(wl.Word));
            wl.SetCode(CodeType, code);
            var wll = new WordLibraryList();

            wll.Add(wl);
            return(wll);
        }
Esempio n. 7
0
        public virtual string ExportLine(WordLibrary wl)
        {
            var sb = new StringBuilder();

            if (string.IsNullOrEmpty(wl.WubiCode))
            {
                sb.Append(wubiFactory.GetCodeOfString(wl.Word)[0]);
            }
            else
            {
                sb.Append(wl.WubiCode);
            }
            sb.Append(" ");
            sb.Append(wl.Word);

            return(sb.ToString());
        }
Esempio n. 8
0
        public WordLibraryList ImportLine(string line)
        {
            string code = line.Split(' ')[0];
            string word = line.Split(' ')[1];
            var    wl   = new WordLibrary();

            wl.Word   = word;
            wl.Count  = DefaultRank;
            wl.PinYin = ToArray(pinyinFactory.GetCodeOfString(word));
            var wll = new WordLibraryList();

            if (wl.PinYin.Length > 0)
            {
                wll.Add(wl);
            }
            return(wll);
        }
Esempio n. 9
0
        public virtual WordLibraryList ImportLine(string line)
        {
            var wlList = new WordLibraryList();

            string[] strs = line.Split(' ');
            for (int i = 1; i < strs.Length; i++)
            {
                string word = strs[i].Replace(",", ""); //把汉字中带有逗号的都去掉逗号
                var    list = pinyinFactory.GetCodeOfString(word);
                for (int j = 0; j < list.Count; j++)
                {
                    var wl = new WordLibrary();
                    wl.Word   = word;
                    wl.PinYin = ToArray(list);
                    wlList.Add(wl);
                }
            }
            return(wlList);
        }
        private void GenerateCode(WordLibrary wl)
        {
            var word = wl.Word;

            if (SelectedParsePattern.IsPinyin && SelectedParsePattern.IsPinyinFormat)
            {
                var py = pyFactory.GetCodeOfString(word, SelectedParsePattern.CodeSplitString);
                wl.PinYin = CollectionHelper.ToArray(py);
            }
            else
            {
                if (!string.IsNullOrEmpty(SelectedParsePattern.MappingTablePath))
                {
                    SelectedParsePattern.MappingTable = UserCodingHelper.GetCodingDict(SelectedParsePattern.MappingTablePath);
                }
                selfFactory.MappingDictionary  = SelectedParsePattern.MappingTable;
                selfFactory.Is1Char1Code       = SelectedParsePattern.IsPinyinFormat;
                selfFactory.MutiWordCodeFormat = SelectedParsePattern.MutiWordCodeFormat;
                wl.SetCode(CodeType.UserDefine, selfFactory.GetCodeOfString(word, SelectedParsePattern.CodeSplitString));
            }
        }
Esempio n. 11
0
        //private RimeConfigForm form;

        public string ExportLine(WordLibrary wl)
        {
            var sb = new StringBuilder();

            if (this.CodeType == wl.CodeType && this.CodeType != CodeType.Pinyin && CodeType != CodeType.TerraPinyin)
            {
                return(wl.Word + "\t" + wl.Codes[0][0] + "\t" + wl.Rank);
            }

            if (codeGenerater == null)
            {
                codeGenerater = CodeTypeHelper.GetGenerater(CodeType);
            }
            try
            {
                codeGenerater.GetCodeOfWordLibrary(wl);
            }
            catch (Exception ex)
            {
                Debug.Fail(ex.Message);
                return(null);
            }


            if (codeGenerater.Is1CharMutiCode)
            {
                IList <string> codes = codeGenerater.GetCodeOfString(wl.Word).ToCodeString(" ");
                int            i     = 0;
                foreach (string code in codes)
                {
                    sb.Append(wl.Word);
                    sb.Append("\t");
                    sb.Append(code);
                    sb.Append("\t");
                    sb.Append(wl.Rank);
                    i++;
                    if (i != codes.Count)
                    {
                        sb.Append(lineSplitString);
                    }
                }
            }
            else
            {
                sb.Append(wl.Word);
                sb.Append("\t");
                if (CodeType == CodeType.Pinyin || CodeType == CodeType.TerraPinyin)
                {
                    sb.Append(wl.GetPinYinString(" ", BuildType.None));
                }
                else if (CodeType == wl.CodeType)
                {
                    sb.Append(wl.Codes[0][0]);
                }
                else
                {
                    sb.Append(wl.Codes.ToCodeString(" ")[0]);
                }
                sb.Append("\t");
                sb.Append(wl.Rank);
            }
            return(sb.ToString());
        }
        public void TestGetLongWordsPinyin(string str, string py)
        {
            var result = generater.GetCodeOfString(str).ToCodeString(",");

            Assert.Contains(py, result.ToArray());
        }
Esempio n. 13
0
        public void TestGetLongWordsPinyin(string str, string py)
        {
            var result = generater.GetCodeOfString(str, " ");

            Assert.AreEqual(py, CollectionHelper.ListToString(result, ","));
        }