コード例 #1
0
        /// <summary>
        /// ºº×ÖתƴÒôËõд
        /// </summary>
        /// <param name="str">Ҫת»»µÄºº×Ö×Ö·û´®</param>
        /// <returns>Æ´ÒôËõд</returns>
        public static String GetPYString(String str)
        {
            String TempStr = "";

            foreach (char Chr in str)
            {
                if ((int)Chr >= 33 && (int)Chr <= 126)
                {
                    //×ÖĸºÍ·ûºÅÔ­Ñù±£Áô
                    TempStr += Chr.ToString();
                }
                else if ((int)Chr == 12288)
                {
                    //½«È«½Ç¿Õ¸ñת»»Îª°ë½Ç¿Õ¸ñ
                    TempStr += (char)32;
                }
                else if ((int)Chr > 65280 && (int)Chr < 65375)
                {
                    //½«È«½Ç·ûºÅת»»Îª°ë½Ç·ûºÅ
                    TempStr += (char)((int)Chr - 65248);
                }
                else
                {                                             //ÀÛ¼ÓÆ´ÒôÉùĸ
                    //TempStr += GetPYChar(Chr.ToString());
                    TempStr += PinYinConverter.GetFirst(Chr); // ÎÄÊéºÍÒ»Ìå»ú³ÌÐòWPF²¿·ÖʹÓÃͬһÖÖ·½·¨
                }
            }
            return(TempStr);
        }
コード例 #2
0
        // 玩家名字是否与搜索框的内容相同
        private bool isMatchSearchName(string name)
        {
            if (m_SearchText == "")
            {
                return(true);
            }

            string pyName      = PinYinConverter.Get(name).ToLower();
            string firstPYName = PinYinConverter.GetFirst(name).ToLower();

            name = name.ToLower();

            m_SearchText = m_SearchText.ToLower();

            if (name.IndexOf(m_SearchText) >= 0)
            {
                return(true);
            }
            if (pyName.IndexOf(m_SearchText) >= 0)
            {
                return(true);
            }
            if (firstPYName.IndexOf(m_SearchText) >= 0)
            {
                return(true);
            }

            return(false);
        }
コード例 #3
0
        /// <summary>
        /// 汉字转拼音缩写
        /// </summary>
        /// <param name="str">要转换的汉字字符串</param>
        /// <returns>拼音缩写</returns>
        public static String GetPYString(String str)
        {
            String TempStr = "";

            foreach (char Chr in str)
            {
                if ((int)Chr >= 33 && (int)Chr <= 126)
                {
                    //字母和符号原样保留
                    TempStr += Chr.ToString();
                }
                else if ((int)Chr == 12288)
                {
                    //将全角空格转换为半角空格
                    TempStr += (char)32;
                }
                else if ((int)Chr > 65280 && (int)Chr < 65375)
                {
                    //将全角符号转换为半角符号
                    TempStr += (char)((int)Chr - 65248);
                }
                else
                {                                             //累加拼音声母
                    TempStr += PinYinConverter.GetFirst(Chr); //GetPYChar(Chr.ToString());
                }
            }
            return(TempStr);
        }
コード例 #4
0
        private void TB_Search_TextChanged(object sender, TextChangedEventArgs e)
        {
            ListBox list = null;
            Dictionary <string, User> dataList = null;

            if (this.LB_SessionList.Visibility == System.Windows.Visibility.Visible)
            {
                list     = this.LB_SessionList;
                dataList = CurrentUser.ChatTable;
            }
            else
            {
                list     = this.LB_ContactList;
                dataList = CurrentUser.ContactTable;
            }

            list.Items.Clear();
            foreach (var item in dataList)
            {
                string name = item.Value.DisplayName;
                if (name.IndexOf(this.TB_Search.Text, StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    ContactListItem listItem = new ContactListItem()
                    {
                        DisplayName = item.Value.DisplayName,
                        User        = item.Value
                    };
                    list.Items.Add(listItem);
                    continue;
                }

                if (PinYinConverter.Get(name).ToLower().IndexOf(this.TB_Search.Text.ToLower(), StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    ContactListItem listItem = new ContactListItem()
                    {
                        DisplayName = item.Value.DisplayName,
                        User        = item.Value
                    };
                    list.Items.Add(listItem);
                    continue;
                }

                if (PinYinConverter.GetFirst(name).ToLower().IndexOf(this.TB_Search.Text.ToLower(), StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    ContactListItem listItem = new ContactListItem()
                    {
                        DisplayName = item.Value.DisplayName,
                        User        = item.Value
                    };
                    list.Items.Add(listItem);
                }
            }
        }
コード例 #5
0
ファイル: PinYinConverterTests.cs プロジェクト: zy97/osharp
        public void GetFirstTest()
        {
            string input  = "把汉字转换成拼音";
            string actual = "BHZZHCPY";

            Assert.Equal(PinYinConverter.GetFirst(input), actual);
            input  = "把汉字转换成拼音";
            actual = "BaHanZiZhuanHuanChengPinYin";
            Assert.Equal(PinYinConverter.Get(input), actual);
            input  = "把汉字,转换,成<拼音>";
            actual = "BaHanZi,ZhuanHuan,Cheng<PinYin>";
            Assert.Equal(PinYinConverter.Get(input), actual);
        }
コード例 #6
0
        //保存
        private void SaveButton_Click(object sender, EventArgs e)
        {
            //判断所有信息是否填写正确

            //判断UID是否正确
            if (!checkUID())
            {
                MessageBox.Show("“UID”与现有项目重复或不符合要求:\r\n\r\n支持:中文、英文、数字、_", "“UID”填写不正确");
                return;
            }


            //名称
            if (nameBox.Text.Replace(" ", "") == "")
            {
                MessageBox.Show("名称不能为空", "名称为空");
                return;
            }

            //判断是否重名
            DataTable dt = OLEREO.Library.SQLite.ExecuteDataTable("SELECT * FROM Item WHERE name = '" + nameBox.Text.Replace("'", "''") + "' COLLATE NOCASE;", ZIKU.DataBase.Config.Instance.Path);

            if (dt.Rows.Count > 0)                               //具有同名的项目
            {
                if (dt.Rows.Count == 1)                          //同名只有一个,判断是不是和当前项目同一个
                {
                    if (dt.Rows[0]["id"].ToString() != idORnull) //不是同一个,说明这次修改成了一个现有的
                    {
                        MessageBox.Show("有一个重名的项目,请改变名称,又或者编辑已有的项目");
                        return;
                    }
                }
                else
                {
                    //具有一个以上的同名项目,绝对重名了。
                    MessageBox.Show("有一个重名的项目,请改变名称,又或者编辑已有的项目");
                    return;
                }
            }

            //判断项目目录是否符合命名
            if (!Tools.isMeetDirPath(iPath_BOX.text))
            {
                MessageBox.Show("“项目目录”不符合命名要求,需要以X:\\开头,且路径中不能包含以下字符:\r\n\r\n/:*?\"<>|");
                return;
            }

            //判断主页填写是否正确
            if (homePageBox.Text.Replace(" ", "") != "")
            {
                bool https = homePageBox.Text.ToUpper().StartsWith(@"HTTPS://");
                bool http  = homePageBox.Text.ToUpper().StartsWith(@"HTTP://");
                bool www   = homePageBox.Text.ToUpper().StartsWith(@"WWW.");

                if (!(https || http || www))
                {
                    MessageBox.Show("主页要以下其中之一开头:\r\n\r\nhttps://\r\nhttp://\r\nwww.");
                    return;
                }
            }
            else
            {
                homePageBox.Text = "";
            }


            //dataFolderName  过滤掉 name 中非法字符
            string newDataFolderName = Tools.filterFileName(nameBox.Text);

            if (iPath_BOX.text.Replace(" ", "") == "")
            {
                iPath_BOX.text = "";
            }

            //名称改变之后,要尝试修改现有的目录
            if (idORnull != null) //项目id不为空,表示这是编辑
            {
                ZIKU.DataBase.Item em = ZIKU.DataBase.Item.getInstance(idORnull);

                if ((em.dataFolderName != newDataFolderName) && iPath_BOX.text == "")
                {
                    string oldFullFolder = ZIKU.DataBase.Config.Instance.dataFolderExpand + "\\" + em.dataFolderName; //完整的旧目录名称
                    //if (iPath_BOX.text != "")
                    //    oldFullFolder = myZiku.exPand(myZiku.variableToSave(iPath_BOX.text, ZIKU.DataBase.Config.Instance.Path), ZIKU.DataBase.Config.Instance.Path);// + em.dataFolderName;
                    //else
                    //    oldFullFolder = ZIKU.DataBase.Config.Instance.dataFolderExpand + "\\" + em.dataFolderName;

                    if (/*(oldFullFolder.Replace(" ", "") != "") &&  没有必要判断是否空格,编辑的项目总会有资料目录名称*/ System.IO.Directory.Exists(oldFullFolder))
                    {
                        try
                        {
                            Tools.MyComputer.FileSystem.RenameDirectory(oldFullFolder, newDataFolderName); //尝试将旧的目录名称修改成新的
                        }
                        catch
                        {
                            newDataFolderName = em.dataFolderName; //如果失败了旧继续沿用旧的资料目录名称
                        }
                    }
                }
            }

            //为新的项目获取一个ID
            if ((idORnull == null))
            {
                idORnull = SQLite.ExecuteNonQuery("INSERT INTO Item (name) values('新的项目')", ZIKU.DataBase.Config.Instance.Path).ToString();
            }

            if (UIDBox.Text.Replace(" ", "") == "")
            {
                UIDBox.Text = idORnull;
            }

            //获取所有分类
            string   allSelectC_ID = "";
            TreeNode tnn           = Tools.GetNode(categoryBox.Nodes);

            foreach (TreeNode t in tnn.Nodes)
            {
                if (t.Checked)
                {
                    allSelectC_ID += t.Tag.ToString() + ";";
                }
            }


            ZIKU.DataBase.Item oleItemInfo = ZIKU.DataBase.Item.getInstance(idORnull);
            //更新分类选择
            string[] newCID = Tools.SearchDifferent(oleItemInfo.C_ID, allSelectC_ID);
            foreach (string addCid in newCID[0].Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries))
            {
                ZIKU.DataBase.Category.addItem(addCid, idORnull);
            }

            foreach (string delCID in newCID[1].Split(new char[] { ';' }, System.StringSplitOptions.RemoveEmptyEntries))
            {
                ZIKU.DataBase.Category.removeItem(delCID, idORnull);
            }

            //判断新旧的图标值是否一样
            if (iconBox.text.Replace(" ", "") == "")
            {
                iconBox.text = "";
            }
            if (oleItemInfo.icon != iconBox.text)
            {
                System.IO.File.Delete(ZIKU.DataBase.Config.Instance.Path + ".cache\\icon\\" + idORnull + ".png");
            }

            //先把 UID 写入到数据库中,要不后面的将值转换为save时,无法识别当前项目的 UID
            SQLite.ExecuteNonQuery("UPDATE Item SET UID = '" + UIDBox.Text + "' WHERE id = " + idORnull, ZIKU.DataBase.Config.Instance.Path);


            SQLite.ExecuteNonQuery("UPDATE Item SET name = '" + nameBox.Text.Replace("'", "''")
                                   + "',value = '" + myZiku.variableToSave(valueBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''")
                                   + "',arguments = '" + myZiku.variableToSave(argumentsBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''")
                                   + "',version = '" + versionBox.Text.Replace("'", "''")
                                   + "',intro = '" + introBox.Text.Replace("'", "''")
                                   + "',introduce = '" + introduceBox.Text.Replace("'", "''")
                                   + "',C_ID = '" + allSelectC_ID
                                   + "',icon = '" + myZiku.variableToSave(iconBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''")
                                   + "',hideMain = '" + item_Hide_main.Checked.ToString().ToUpper()
                                   + "',hideSearch = '" + item_Hide_search.Checked.ToString().ToUpper()
                                   + "',iPath = '" + myZiku.variableToSave(iPath_BOX.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''")
                                   + "',searchAlias = '" + searchAliasBox.Text.Replace("'", "''")
                                   + "',nameF = '" + PinYinConverter.GetFirst(nameBox.Text).Replace("'", "''")
                                   + "',workingDirectory = '" + myZiku.variableToSave(workingdirBox.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''")
                                   + "',homePage = '" + homePageBox.Text.Replace("'", "''")
                                   + "',dataFolderName = '" + newDataFolderName.Replace("'", "''")
                                   + "',onAdmin = '" + onAdminBox.Checked.ToString().ToUpper()
                                   + "',IV_x86 = '" + myZiku.variableToSave(iv_x86_BOX.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''")
                                   + "',IV_x64 = '" + myZiku.variableToSave(iv_x64_BOX.text, ZIKU.DataBase.Config.Instance.Path).Replace("'", "''")
                                   + "' WHERE id = " + idORnull, ZIKU.DataBase.Config.Instance.Path);
            this.Close();
        }
コード例 #7
0
 public static DdUser ConvertFromUser(User user)
 {
     return(new DdUser {
         id = user.id, Name = user.Name, Ddid = user.Ddid, DeptName = user.DeptName, NamePY = PinYinConverter.GetFirst(user.Name)
     });
 }
コード例 #8
0
ファイル: DistrictService.cs プロジェクト: git-martin/yilehao
        public DataJsonResult Save(District district, bool isNew)
        {
            var result = new DataJsonResult();

            try
            {
                var nameChanged = true;
                if (!isNew)
                {
                    var oldDistrict = _currencyService.GetSingleById <District>(district.Id);
                    if (oldDistrict != null)
                    {
                        //判断名称是否变更,如果变更,则需要递归更新子节点
                        if (oldDistrict.FullName.Equals(district.FullName, StringComparison.OrdinalIgnoreCase) &&
                            oldDistrict.ShortName.Equals(district.ShortName, StringComparison.OrdinalIgnoreCase))
                        {
                            nameChanged = false;
                        }

                        var parentDistrict = _currencyService.GetSingleById <District>(district.ParentId);
                        if (parentDistrict != null)
                        {
                            district.Position = $"{parentDistrict.Position} tr_{parentDistrict.Id}".Trim();
                            if (parentDistrict.Id != "0")
                            {
                                district.MergerName      = $"{parentDistrict.MergerName},{district.FullName}".Trim(',');
                                district.MergerShortName = $"{parentDistrict.MergerShortName},{district.ShortName}".Trim(',');
                            }
                            else
                            {
                                district.MergerName      = district.FullName;
                                district.MergerShortName = district.ShortName;
                            }
                        }
                        else
                        {
                            district.Position        = $"tr_{district.Id}";
                            district.MergerName      = district.FullName;
                            district.MergerShortName = district.ShortName;
                        }
                    }
                    else
                    {
                        //转为新增
                        isNew = true;
                    }
                }

                if (district.Level < 3 && nameChanged)
                {
                    district.PinYin    = PinYinConverter.Get(district.FullName);
                    district.JianPin   = PinYinConverter.GetFirst(district.ShortName);
                    district.FirstChar = PinYinConverter.GetFirst(district.ShortName.First());
                }

                if (!isNew)
                {
                    result.Success = _currencyService.Update(district);
                    if (nameChanged)
                    {
                        //更新所有子节点
                        UpdateChildsInfo(district);
                    }
                }
                else
                {
                    result.Success = _currencyService.Create(district);
                }
            }
            catch (Exception ex)
            {
                result.ErrorMessage = "出现异常,保存行政区失败";

                Logger.Error(ex, "保存行政区失败");
            }

            return(result);
        }
コード例 #9
0
 public static string GetPinYingFirst(string str)
 {
     return(PinYinConverter.GetFirst(str));
 }