[C#] Генератор словарей

X-DMIN

КИДАЛА

X-DMIN

КИДАЛА
Регистрация
2 Июл 2018
Сообщения
1,325
Реакции
940
Репутация
0
Генератор словарей на С#
ПОЛЬЗУЙТЕСЬ, ДОПИСЫВАЙТЕ))
Код:
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();
           }
       }
 

cody21h

Участник

cody21h

Участник
Регистрация
14 Ноя 2018
Сообщения
24
Реакции
6
Репутация
0
спасибо друг! актуально, забираю
 

ZISOGI

Участник

ZISOGI

Участник
Регистрация
25 Сен 2023
Сообщения
9
Реакции
0
Репутация
0
Спасибо, реально выручили и код очень красивый с точки зрения программирования
 
Сверху