Генератор словарей на С#
ПОЛЬЗУЙТЕСЬ, ДОПИСЫВАЙТЕ))
ПОЛЬЗУЙТЕСЬ, ДОПИСЫВАЙТЕ))
Код:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Generate_dictionary
{
public class Program
{
private enum Options { All, Small, Big, Digit, SmallDigit, BigDigit, SmallBig }
private static long index;
public static void Main(string[] args)
{
#if !DEBUG
//int length = int.Parse(args[0]);
//string options = args[1].ToString();
int length = 7;
string options = "d";
#endif
#if DEBUG
int length = 10;
string options = "d";
#endif
index = 0;
switch (options)
{
case "s":
getConditions(length, Options.Small);
break;
case "b":
getConditions(length, Options.Big);
break;
case "d":
getConditions(length, Options.Digit);
break;
case "sd":
getConditions(length, Options.SmallDigit);
break;
case "bd":
getConditions(length, Options.BigDigit);
break;
case "sb":
getConditions(length, Options.SmallBig);
break;
case "all":
getConditions(length, Options.All);
break;
}
}
private static void getConditions(int length, Options options)
{
char[] arAlphabet ;
Console.WriteLine(length);
if (options == Options.Small) {
string letters = "qwertyuiopasdfghjklzxcvbnm";
arAlphabet = letters.ToCharArray();
} else
if (options == Options.Big) {
string letters = "QWERTYUIOPASDFGHJKLZXCVBNM";
arAlphabet = letters.ToCharArray();
} else
if (options == Options.Digit)
{
string letters = "1234567890";
arAlphabet = letters.ToCharArray();
} else
if (options == Options.BigDigit)
{
string letters = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890";
arAlphabet = letters.ToCharArray();
} else
if (options == Options.SmallBig)
{
string letters = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
arAlphabet = letters.ToCharArray();
} else
if (options == Options.SmallDigit)
{
string letters = "1234567890qwertyuiopasdfghjklzxcvbnm";
arAlphabet = letters.ToCharArray();
} else
{
string letters = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890";
arAlphabet = letters.ToCharArray();
}
int n = length; // количество мест в комбинации
const string fileName = @"D:\ResultGenerate.txt";
StreamWriter writer = File.AppendText(fileName);
while (n != 0)
{
Console.WriteLine(n);
// Накопитель строк.
StringBuilder stringBuilder = new StringBuilder((int)Math.Pow(arAlphabet.Length, n) * (n + 2));
char[] arBuffer = new char[n];
RecursionGenerateCombinationsToFile(arAlphabet, arBuffer, 0, stringBuilder);
// Записываем полученный результат в файл.
writer.Write(stringBuilder.ToString());
n--;
}
writer.Close();
}
private static void RecursionGenerateCombinationsToFile(char[] arAlphabet, char[] arBuffer, int order,
StringBuilder stringBuilder)
{
index++;
if (order < arBuffer.Length)
for (int i = 0; i < arAlphabet.Length; i+
{
arBuffer[order] = arAlphabet;
RecursionGenerateCombinationsToFile(arAlphabet, arBuffer, order + 1, stringBuilder);
Console.WriteLine("Шаг {0} из {1}", index, arAlphabet.Length);
}
else
{
for (int i = 0; i < arBuffer.Length; i+
stringBuilder.Append(arBuffer);
stringBuilder.AppendLine();
}
}