글목록

2021년 4월 5일

무작위 문자열(Random string) 만들기

난수를 이용하는 다른 예제를 하나 설명드리려고 합니다.

윈도우의 임시파일명에 보면 특별한 규칙이 없어보이는 문자열들이 있습니다. 어떤 규칙이 있을지는 모르지만.. 어쨋건 서로 중복되지 않는 이름을 만들려고 할 때 무작위 문자열을 만들고 싶을 수 있습니다.

숫자는 Rnd() 함수를 이용해서 만든다지만, 문자열은 어떻게 조합할 수 있을까요?

아래의 예제를 보시면 쉽게 이해하실 수 있을 것 같습니다.


Function GetRandomString(iNum As Integer) As String
  Dim tStr As String, tChar As String, i As Integerj As Integern As Integer
  tChar = "abcdefghijklmnopqrstuvwxyz0123456789-_^"
  n = Len(tChar)
  For i = 1 To iNum
    j = 1 + Int(Rnd() * n)
    If j > n Then j = n
    tStr = tStr & Mid(tChar, j, 1)
  Next
  GetRandomString = tStr
End Function


만들고자 하는 문자열의 길이를 입력받으면, 문자열에 사용할 글자 조합으로부터 임의의 문자를 추출해서 입력받은 갯수만큼 반복하여 연결하는 방식입니다. 영문자, 숫자, 특수기호 등 본인이 원하는 문자열을 모두 나열해두면 됩니다. 대소문자를 구분하는 경우라면, 

tChar = "abcdefghijklmnopqrstuvwxyz"
tChar = UCase(tChar) & tChar & "0123456789-_^"

와 같이 소문자를 대문자로 변환해서 합쳐버리는 방법을 사용할 수도 있습니다. 아스키코드를 이용해서 특수문자들을 조합시킬 수도 있구요. 문자셋을 어떻게 구성할 것인지는 개인마다 필요에 따라 다르게 조합하시면 되겠습니다.

댓글 없음:

댓글 쓰기

의견이나 질문이 있으신 분은 언제든지 댓글을 달아주세요~

많이 본 글 :