一个字典生成类

public class DicCreater
    {
        public DicCreater(char[] charExpression,string savePath)
        {
            this.charExpression = charExpression;
            this.savePath = savePath;
        }
        string savePath;
        public int upperLettersFrom=65;
        public int upperLettersTo=90;
        public int lowerLettersFrom = 97;
        public int lowerLettersTo = 122;
        public int numberFrom = 48;
        public int numberTo = 57;
        public char[] charExpression;
        System.IO.StreamReader sr;
       
        public void Creat()
        {
            int currentLen = 0;
            if (System.IO.File.Exists(savePath)) {
                System.IO.File.Delete(savePath);
            }
           
            string textForAppend=null;

            int currentFilePosition = 0;
            while (currentLen < charExpression.Length)
            {
                while (true)
                {
                    try
                    {

                        using (sr = System.IO.File.OpenText(savePath))
                        {
                           int i=0;

                           while (i++ < currentFilePosition)
                           {
                               sr.ReadLine();
                           }
                           textForAppend = sr.ReadLine();     
                           currentFilePosition++;
                        }
                    }
                    catch{}
                    if (string.IsNullOrEmpty(textForAppend)) {
                        textForAppend = string.Empty;
                    }
                    if ((currentLen + 1) == textForAppend.Length)
                    {
                        break;
                    }
                    switch (charExpression[currentLen])
                    {
                        case 'A':
                            CreateForUpper(savePath, textForAppend);
                            break;
                        case 'a':
                            CreateForLower(savePath, textForAppend);
                            break;
                        case '0':
                            CreateForNumber(savePath, textForAppend);
                            break;
                        case '\\':
                            using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                            {
                                
                                sw.WriteLine(string.Format("{0}{1}", textForAppend, charExpression[++currentLen]));
                            }
                            break;
                        default:
                            using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                            {
                                sw.WriteLine(string.Format("{0}{1}", textForAppend, charExpression[currentLen]));
                            }
                            break;
                    }
                    
                }
                currentLen++;
                if (currentLen >= charExpression.Length)
                {
                    break;
                }
                
            }
        }

        #region 小写字母
        void CreateForLower(string savePath,string textForAppend)
        {
            if (lowerLettersFrom > lowerLettersTo)
            {
                lowerLettersTo = lowerLettersTo + 26;
            }
            for (int i = lowerLettersFrom; i <= lowerLettersTo; i++)
            {
                if (i > 122)
                {
                    using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                    {
                        sw.WriteLine(string.Format("{0}{1}", textForAppend, Convert.ToChar(i - 26)));
                    }
                }
                else
                {
                    using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                    {
                        sw.WriteLine(string.Format("{0}{1}", textForAppend, Convert.ToChar(i)));
                    }
                }
            }
        }
        #endregion
        #region 大写字母
        void CreateForUpper(string savePath, string textForAppend)
        {
            if (upperLettersFrom > upperLettersTo)
            {
                upperLettersTo = upperLettersTo + 26;
            }
            for (int i = upperLettersFrom; i <= upperLettersTo; i++)
            {
                if (i > 90)
                {
                    using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                    {
                        sw.WriteLine(string.Format("{0}{1}", textForAppend, Convert.ToChar(i - 26)));
                    }
                }
                else
                {
                    using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                    {
                        sw.WriteLine(string.Format("{0}{1}", textForAppend, Convert.ToChar(i)));
                    }
                     
                }
            }
        }
        #endregion
        #region 数字
        void CreateForNumber(string savePath, string textForAppend)
        {
            if (numberFrom > numberTo)
            {
                numberTo = numberTo + 10;
            }
            for (int i = numberFrom; i <= numberTo; i++)
            {
                if (i > 57)
                {
                    using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                    {
                        sw.WriteLine(string.Format("{0}{1}", textForAppend, Convert.ToChar(i - 10)));
                    }
                    
                }
                else
                {
                    using (System.IO.StreamWriter sw = System.IO.File.AppendText(savePath))
                    {
                        sw.WriteLine(string.Format("{0}{1}", textForAppend, Convert.ToChar(i)));
                    }
                }
            }
        }
        #endregion

    }

时间换空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值