当前位置:编程学习 > C#/ASP.NET >>

winform 如何实现字典的速录

数据库中存在字典行数据,在窗体上输入部分拼音就能出现字典中包括这些拼音的汉字,例如 字典中有“河西区大沽南路”“河东区区易做图”,在输入“hd”时就会出现“河东区区易做图”,用代码如何实现?   --------------------编程问答--------------------


/// <summary>
        /// 返回汉字字符串的拼音的首字母
        /// </summary>
        /// <param name="chinesestr">要转换的字符串</param>
        /// <returns></returns>
        public static string Chinesecap(string chinesestr)
        {
            byte[] zw = new byte[2];
            long chinesestr_int;
            string charstr, chinastr = null, capstr = null;
            for (int i = 0; i <= chinesestr.Length - 1; i++)
            {
                charstr = chinesestr.Substring(i, 1).ToString();
                if (charstr == " ")
                {
                    continue;
                }
                zw = System.Text.Encoding.Default.GetBytes(charstr);
                // 得到汉字符的字节数组 
                if (zw.Length == 2)
                {
                    int i1 = (short)(zw[0]);
                    int i2 = (short)(zw[1]);
                    chinesestr_int = i1 * 256 + i2;
                    //table of the constant list 
                    // a; //45217..45252 
                    // b; //45253..45760 
                    // c; //45761..46317 
                    // d; //46318..46825 
                    // e; //46826..47009 
                    // f; //47010..47296 
                    // g; //47297..47613 

                    // h; //47614..48118 
                    // j; //48119..49061 
                    // k; //49062..49323 
                    // l; //49324..49895 
                    // m; //49896..50370 
                    // n; //50371..50613 
                    // o; //50614..50621 
                    // p; //50622..50905 
                    // q; //50906..51386 

                    // r; //51387..51445 
                    // s; //51446..52217 
                    // t; //52218..52697 
                    //没有u,v 
                    // w; //52698..52979 
                    // x; //52980..53640 
                    // y; //53689..54480 
                    // z; //54481..55289 

                    if ((chinesestr_int >= 45217) && (chinesestr_int <= 45252))
                    {
                        chinastr = "a";
                    }
                    else if ((chinesestr_int >= 45253) && (chinesestr_int <= 45760))
                    {
                        chinastr = "b";
                    }
                    else if ((chinesestr_int >= 45761) && (chinesestr_int <= 46317))
                    {
                        chinastr = "c";
                    }
                    else if ((chinesestr_int >= 46318) && (chinesestr_int <= 46825))
                    {
                        chinastr = "d";
                    }
                    else if ((chinesestr_int >= 46826) && (chinesestr_int <= 47009))
                    {
                        chinastr = "e";
                    }
                    else if ((chinesestr_int >= 47010) && (chinesestr_int <= 47296))
                    {
                        chinastr = "f";
                    }
                    else if ((chinesestr_int >= 47297) && (chinesestr_int <= 47613))
                    {
                        chinastr = "g";
                    }
                    else if ((chinesestr_int >= 47614) && (chinesestr_int <= 48118))
                    {
                        chinastr = "h";
                    }
                    else if ((chinesestr_int >= 48119) && (chinesestr_int <= 49061))
                    {
                        chinastr = "j";
                    }
                    else if ((chinesestr_int >= 49062) && (chinesestr_int <= 49323))
                    {
                        chinastr = "k";
                    }
                    else if ((chinesestr_int >= 49324) && (chinesestr_int <= 49895))
                    {
                        chinastr = "l";
                    }
                    else if ((chinesestr_int >= 49896) && (chinesestr_int <= 50370))
                    {
                        chinastr = "m";
                    }
                    else if ((chinesestr_int >= 50371) && (chinesestr_int <= 50613))
                    {
                        chinastr = "n";
                    }
                    else if ((chinesestr_int >= 50614) && (chinesestr_int <= 50621))
                    {
                        chinastr = "o";
                    }
                    else if ((chinesestr_int >= 50622) && (chinesestr_int <= 50905))
                    {
                        chinastr = "p";
                    }
                    else if ((chinesestr_int >= 50906) && (chinesestr_int <= 51386))
                    {
                        chinastr = "q";
                    }
                    else if ((chinesestr_int >= 51387) && (chinesestr_int <= 51445))
                    {
                        chinastr = "r";
                    }
                    else if ((chinesestr_int >= 51446) && (chinesestr_int <= 52217))
                    {
                        chinastr = "s";
                    }
                    else if ((chinesestr_int >= 52218) && (chinesestr_int <= 52697))
                    {
                        chinastr = "t";
                    }
                    else if ((chinesestr_int >= 52698) && (chinesestr_int <= 52979))
                    {
                        chinastr = "w";
                    }
                    else if ((chinesestr_int >= 52980) && (chinesestr_int <= 53640))
                    {
                        chinastr = "x";
                    }
                    else if ((chinesestr_int >= 53689) && (chinesestr_int <= 54480))
                    {
                        chinastr = "y";
                    }
                    else if ((chinesestr_int >= 54481) && (chinesestr_int <= 55289))
                    {
                        chinastr = "z";
                    }
                }
                else
                {
                    capstr = chinesestr;
                    break;
                }

                capstr = capstr + chinastr;
            }
            return capstr;
        }
--------------------编程问答-------------------- 搜索汉字转拼音
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,