/// <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); }
// 玩家名字是否与搜索框的内容相同 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); }
/// <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); }
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); } } }
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); }
//保存 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(); }
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) }); }
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); }
public static string GetPinYingFirst(string str) { return(PinYinConverter.GetFirst(str)); }