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
}时间换空间

被折叠的 条评论
为什么被折叠?



