1 Востаннє редагувалося k1ntoho (29.12.2018 19:54:06)

Тема: Допоможіть з кодом, будь ласонька!

Я нещодавно почав вивчати сі шарп. Вирішив створити невеличкий генератор паролей для того, щоб бачити результати і просто для розваги. Коли запускаю "процесс" виникає якась велика помилка. Допоможіть. Це код:

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace CSharp_Shell
{

    public static class Program
    {
        public static void Main()
        {
            Random rand = new Random();
            Console.Write("Введите минимальное число символов: ");
            string min = Console.ReadLine();
            Console.Write("Введите максимальное число символов: ");
            string max = Console.ReadLine();
            int minimum = Convert.ToInt32(min);
            int maximum = Convert.ToInt32(max);
            Console.WriteLine("Введите любой символ для генерации");
            Console.ReadKey();
            Console.Clear();

            int randInt = rand.Next(minimum, maximum);
            int[] num = new int[randInt];
            int i1 = 0;
            do {
                num[i1] = rand.Next(9);
                i1++;
            } while (i1 <= randInt);
            int manystr = maximum -= randInt;
            char[] str = new char[manystr];
            int i2 = 0;
            do {
                str[i2] = (char)rand.Next(0x0410, 0x44F);
                i2++;
            } while (i2 <= manystr);
            string ints = String.Concat<int>(num);
            string strs = String.Concat<char>(str);
            string password = ints + strs;
            Console.Write(password);
        }
    }
}

2

Re: Допоможіть з кодом, будь ласонька!

спробуйте замінити кацапійський текст на український, або англійський. і скажіть, чи це допомогло, якщо так, то супер, а якщо ні, то нічого не змінюйте, хай так і буде, але покажіть скріншот помилки.
Якщо помилка пише кацапійською, то змініть мову Visual Studio на англійську, і тоді можете знову запустити програму і показати нам текст помилки.

3

Re: Допоможіть з кодом, будь ласонька!

Добре

4

Re: Допоможіть з кодом, будь ласонька!

Ось помилка
Thread was being aborted.
  at (wrapper managed-to-native) System.Threading.Monitor.Monitor_wait(object,int)
  at System.Threading.Monitor.ObjWait (System.Boolean exitContext, System.Int32 millisecondsTimeout, System.Object obj) [0x0002f] in <43dbbdc147f2482093d8409abb04c233>:0
  at System.Threading.Monitor.Wait (System.Object obj, System.Int32 millisecondsTimeout, System.Boolean exitContext) [0x0000e] in <43dbbdc147f2482093d8409abb04c233>:0
  at System.Threading.Monitor.Wait (System.Object obj, System.Int32 millisecondsTimeout) [0x00000] in <43dbbdc147f2482093d8409abb04c233>:0
  at System.Threading.ManualResetEventSlim.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00141] in <43dbbdc147f2482093d8409abb04c233>:0
  at System.Threading.ManualResetEventSlim.Wait () [0x00000] in <43dbbdc147f2482093d8409abb04c233>:0
  at CSharp_Shell.Console.StartReadListener () [0x0003b] in <da64612dc4654e66b7fbc07fff104719>:0
  at CSharp_Shell.Console.ReadLine () [0x00023] in <da64612dc4654e66b7fbc07fff104719>:0
  at CSharp_Shell.Program.Main () [0x00012] in <cde5e3de879a4160a7f685ff16f7507e>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00041] in <43dbbdc147f2482093d8409abb04c233>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <43dbbdc147f2482093d8409abb04c233>:0
  at CSharp_Shell.Roslyn.RoslynCompiler.RunCode (System.String code, System.Boolean dontRunMain, System.Boolean showErrorsInEditor, System.Boolean showErrorBox) [0x00615] in <c5ad4c9947df4f05b72103312016e3d4>:0

5 Востаннє редагувалося k1ntoho (29.12.2018 20:28:16)

Re: Допоможіть з кодом, будь ласонька!

Тобі обов'язково скрин? Просто зараз нема доступу до компа, тому сиджу у компілері на телефоні

6

Re: Допоможіть з кодом, будь ласонька!

то це помилка якогось лівого онлайн компілятора?

7 Востаннє редагувалося k1ntoho (29.12.2018 20:50:43)

Re: Допоможіть з кодом, будь ласонька!

Ну типу так) Запхни код у візуалку й подивися

8

Re: Допоможіть з кодом, будь ласонька!

Поки що бачу лише те, що num має randInt елементів, а ви пишете в num[randInt]. Замініть do-while на стандартний for.

Подякували: leofun011

9

Re: Допоможіть з кодом, будь ласонька!

Якось так :

using System;
using System.Text;

namespace CSharp_Shell
{
    public static class Program
    {
        public static void Main() {
            Console.InputEncoding = UTF8Encoding.UTF8;
            Console.OutputEncoding = UTF8Encoding.UTF8;
            Random rand = new Random();
            int min, max;
            do
                Console.Write("Введіть мінімальне число символів: ");
            while(!int.TryParse(Console.ReadLine(), out min) || min <= 0);
            do
                Console.Write("Введіть максимальне число символів: ");
            while(!int.TryParse(Console.ReadLine(), out max) || max < min);
            Console.WriteLine("Введіть будь-який символ для генерації ...");
            Console.ReadKey();

            int randInt = rand.Next(min, max);
            StringBuilder sb = new StringBuilder(max, max);
            while(sb.Length < randInt)
                sb.Append(rand.Next(9));
            while(sb.Length < max)
                sb.Append((char)rand.Next(0x0410, 0x44F));
            string password = sb.ToString();
            Console.WriteLine(password);
        }
    }
}

Але розберіться що вам там потрібно, "<" чи "<=" в циклах.

Подякували: k1ntoho, FakiNyan2

10

Re: Допоможіть з кодом, будь ласонька!

Величезне спасибі. Проблема була саме у операторах) Бо я забув, що індексування починається з 0))