본문 바로가기

마우스 매크로

배열 매크로에서 랜덤 문자열 추출 후 중복되지 않는 2차 랜덤 문자열 추출하기 (랜덤 매크로)

반응형

무료 매크로 프로그램 다운로드

http://ngmsoftware.com/bbs/board.php?bo_table=product1&wr_id=32 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#매크로 #매크로프로그램 #메크로 #g매크로 #마우스매크로 #키보드매크로 #엑셀매크로 #키매크로 #수강신청매크로 #로지텍마우스매크로 #매크로키보드 #파이썬매크로 #매크로뜻 #매크로마우스 #로지텍매크로 #ld플레이어매크로 #오토마우스매크로 #키보드마우스매크로 #오토핫키매크로 #이미지매크로 #이미지인식매크로 #하드웨어매크로 #화면인식매크로 #선착순구매매크로 #이미지서치매크로 #한글매크로

 

안녕하세요. 엔지엠소프트웨어입니다. 이 글의 제목만 봐서는 어떤 로직인지 잘 이해가 안갈수도 있습니다. 좀 더 쉽게 풀어서 이야기 하면 다음과 같습니다. 1부터 10까지 숫자가 있고, 여기서 랜덤하게 3개의 숫자를 추출합니다. 그런데, 이 후에 또다시 3개의 숫자를 뽑을 때 첫번째에서 뽑은 숫자와 중복된 숫자가 나올 수 있습니다. 첫번재 랜덤 추출과 두번째 랜덤 추출이 중복되지 않게 만드는 방법입니다. 테스트를 위해 아래와 같이 엔지엠 에디터를 실행하고, 새로운 스크립트를 추가하세요.

 

 

랜덤에 사용할 초기 값은 엑셀에 있는 값이거나 데이타베이스에 있는 값일수도 있습니다. 간단한 테스트이기 때문에 변수에 직접 값을 설정 했습니다. 아래 그림과 같이 [ 변수 ] 를 추가하고, 아이디는 "초기값" 문자열 값은 한줄에 하나씩 1부터 10까지 입력 해줍니다.

 

 

아래 동영상과 같이 함수의 [ 랜덤 문자열 조합 ] 액션을 추가하세요. 그리고, 초가값 변수를 조합할 텍스트에 넣어줍니다. 실행하면 1부터 10까지 숫자중에 랜덤하게 하나씩 뽑아줍니다. 여기서, 중복되지 않게 숫자를 추출하려면 텍스트 조합 옵션을 "RandomPermutation"으로 설정해야 합니다.

https://youtu.be/_Gk0P_Zlb-s

 

 

이제 중복되지 않는 3개의 숫자를 뽑아볼까요? 한번에 랜덤 문자열 조합은 한번에 하나만 랜덤 숫자를 뽑을 수 있기 때문에 [ For 반복 ]을 이용해서 3번 뽑은 문자를 변수에 저장해야 합니다. 배열 변수는 랜덤 문자열 조합으로 뽑아온 숫자 3개를 저장할 변수입니다. 그리고, 난수 변수는 하나씩 뽑아온 값을 임시로 저장하는 변수입니다.

 

 

스크립트를 실행하면, 초기값 변수에 설정한 1부터 10까지 랜덤 문자열 조합으로 가져와서 3번 반복합니다. 랜덤 퍼뮤테이션(임의 순열, Random Permutation) 옵션을 선택했기 때문에 중복되지 않은 숫자를 뽑아줍니다. 각각의 숫자들은 [ 배열 추가 ] 액션으로 배열 변수에 저장해줍니다. 아래 동영상처럼 변수 모니터를 사용하면 각각의 변수에 값이 어떻게 들어가는지 쉽게 확인할 수 있습니다.

※ 변수 모니터는 스크립트를 저장해야 정상적으로 표시됩니다.

https://youtu.be/ZGsDYreBfFI

 

 

10개의 숫자중에 랜덤하게 3개의 숫자는 뽑아서 새로운 배열을 하나 만들었습니다. 3개의 배열 값과 중복되지 않는 배열을 뽑기 위해 초기값에서 방금 만든 배열의 값들을 전부 삭제시켜줍니다. 그러면, 1부터 10에서 1, 2, 3을 빼왔다면 초기값에 4, 5, 6, 7, 8, 9, 10이 남겠죠? 이 배열을 랜덤 문자열 조합에 넣고 돌리면 1, 2, 3을 제외한 랜덤한 값을 가져올겁니다.

 

 

위에서 배열을 콤마로 [ 연결해서 문자 ]로 만들었습니다. 사실 이 루틴은 필요하지 않지만, 학습 용도로 만들다보니 이것 저것 넣어서 만들게 되었네요^^; 배열을 문자로 바꾸고, 문자를 배열로 바꾸는 방법도 연습하면 나중에 도움이 될겁니다. 매크로를 만들다보면 배열을 사용해서 만드는 일이 많거든요. 아래는 콤마로 구분된 [ 문자열을 콤마로 분리 ]해서 배열로 만드는 방법을 보여주고 있습니다.

 

 

배열 조작 액션을 이용하면, 초기값 배열(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)에서 랜덤하게 추출한 배열(1, 2, 3)을 뺄 수 있습니다. 그러면, 4, 5, 6, 7, 8, 9, 10만 남게 됩니다. 배열 조작은 첫번째 배열과 두번째 배열을 합치거나(Plus) 첫번째 배열에서 두번째 배열을 뺄(Minus) 수 있습니다.

 

 

마지막으로, 초기값을 마지막 랜덤 문자열 조합에 넣어주고, 반복시키면 첫번째와 중복되지 않는 새로운 랜덤 숫자를 3개 뽑아줍니다. 아래 동영상을 보면 처음 1부터 10에서 "8, 2, 4" 3개의 랜덤 숫자를 뽑았습니다. 그래서, 초기값에는 "1, 3, 5, 6, 7, 9, 10"만 남아 있습니다. 두번째 랜덤 숫자 3개는 "7, 1, 3"을 가져왔습니다. 이 스크립트를 계속 돌려보면, 첫번째 3개와 두번째 3개가 중복되지 않게 랜덤 조합을 만들어냅니다.

https://youtu.be/ZTIY2sJiDFw

 

 

좀 더 간단하게 만들수도 있을거 같긴한데요. 만들다보니 이런 저런 생각이 많아져서 복잡해진게 아닌가 생각되네요. 첨부되어 있는 스크립트를 참고하셔서 좀 더 최적화하시거나 내용을 추가해서 사용하시면 됩니다. 

 

[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]

 

원본 글 보기

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#비활성매크로 #g102매크로 #철권매크로 #레이저마우스매크로 #ghub매크로 #녹화매크로 #키보드반복매크로 #로지텍마우스광클매크로 #플라스크매크로 #윈도우매크로 #비활성g매크로 #오토매크로 #자동사냥 #주식매크로 #오토핫키키보드 #오토핫키마우스 #오토핫키이미지 #지존오토 #기계식매크로 #하드웨어매크로 #무한반복매크로 #대량이메일발송매크로 #엑셀VBA매크로 #주식모니터링매크로

반응형