반응형

C#  문자열 랜덤 생성 프로그램

 

글.  오상문 sualchi@daum.net

 

(1) 비주얼 스튜디오에서 C# 폼 프로젝트를 만듭니다.

 

(2) 다음과 같은 컨트롤을 폼에 배치합니다.

 

-체크상자 4개 : cbLowercase, cbUppercase, cbNumbers, cbSpecial

-레이블1개 : label1

-텍스트상자 2개 : txtLength, strBox

-단추 2개 : btnNew, btnExit

 

컨트롤의 텍스트 속성이나 배치 등은 화면을 참고하세요.

 

 

 

(3) 만들기, 종료 버튼을 더블클릭하여 코드를 작성하고,

   다른 추가 부분도 아래 소스를 참고하여 작성합니다.

 

//
// C# Random String Generator V1.0
// Visual Studio 2015
// 2018.07.11 by Sangmun Oh
//

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

 

namespace random_string
{
    public partial class Form1 : Form
    {
        private const string CapitilizedLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        private const string NonCapitilizedLetters = "abcdefghijklmnopqrstuvwxyz";
        private const string Numbers = "0123456789z";
        private const string SpecialCharacters = "!@#$%^*";

        private static Random random = new Random();
   
        public Form1()
        {
            InitializeComponent();
        }

 

        private void New_Click(object sender, EventArgs e)
        {
            List<string> charSets = new List<string>();

            if (cbLowercase.Checked)
                charSets.Add(NonCapitilizedLetters);
            if (cbUppercase.Checked)
                charSets.Add(CapitilizedLetters);
            if (cbNumbers.Checked)
                charSets.Add(Numbers);
            if (cbSpecial.Checked)
                charSets.Add(SpecialCharacters);

            if (charSets.Count > 0)
            {
                int length;
                bool canConvert;
               
                canConvert = int.TryParse(txtLength.Text, out length);

                // length = int.Parse(txtLength.Text); // 포맷 에러 가능성

                if (canConvert == false || length <= 0)
                {
                    MessageBox.Show("글자 수는 0보다 큰 정수입니다.");
                    return;
                }

                StringBuilder sb = new StringBuilder();

                while (length-- > 0)
                {
                    int charSet = random.Next(charSets.Count);
                    int index = random.Next(charSets[charSet].Length);
                    sb.Append(charSets[charSet][index]);
                }
               
                strBox.Text = sb.ToString();
            } else
                MessageBox.Show("문자 종류를 하나 이상 체크하세요.");
        }

 

        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}


 

(4) 실행 화면입니다.

 

 

 

<이상>

 

 

반응형

'C#, Unity' 카테고리의 다른 글

C# 키 코드 확인 예제  (0) 2018.07.12
C# 로그인 창으로 접속하는 예제  (0) 2018.07.11
C# String과 string 차이?  (0) 2018.07.11
C# 동적으로 단추 생성하기  (0) 2018.07.09
C#, 로또 출력 윈도우 폼 예제  (0) 2018.07.08

+ Recent posts