본문 바로가기
[최대48만원] 인터넷•TV 가입시 설치당일 현금지급 정수기 렌탈시 최대50만원 추가지급
이미지 매크로

숫자 순열조합 매크로

by 업무자동화 2023. 6. 12.
반응형

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

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

 

엔지엠소프트웨어

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

www.ngmsoftware.com

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

 

  • 엔지엠 무료: 무료 (전체 기능의 50프로)
  • 엔지엠 커뮤니티 월 이용료: 4,500원, 1년 이용료: 55,000원 (전체 기능의 80프로)
  • 엔지엠 얼티밋 월 이용료: 6,500원, 1년 이용료: 77,000원 (전체 기능의 90프로)
  • 엔지엠 엔터프라이즈 월 이용료: 9,200원, 1년 이용료: 110,000원 (전체 기능 사용)

 

안녕하세요. 엔지엠소프트웨어입니다. 우선, 현존하는 RPA 매크로 프로그램에서 Json 문자열을 파싱하고 2차원 배열로 만들어서 변수에 저장하는건 상당히 어려운 작업이라는걸 아셔야 합니다. 불가능한건 아니지만 많은 액션들을 사용해야하고, 스크립트가 복잡해집니다. 가장 좋은 방법은 업무에 맞게 일정 부분은 [ 커스텀 액션 ]으로 만들어서 사용하는건데요. 일회성 제작이라면 이 글을 참고하셔서 처리하는게 좋을겁니다. 엔지엠 매크로 에디터를 실행하고 새로운 스크립트를 추가하세요.

 

 

우측 하단의 외부 API에 있는 [ C# 코드 실행 ] 액션을 스크립트에 추가하세요.

 

 

이제부터는 C# 코딩을 좀 알아야 하는 부분이고, C# 코딩을 알더라도 중급 이상 실력을 갖춰야합니다. 아무래도, 2차원 배열을 중복 없는 순열(Permutation) 조합(Combination)해야 하기 때문입니다. 통계 관련쪽 개발을 하는게 아니라면... 사실 경력이 오래된 개발자라도 순열 조합이 뭔지 잘 모르거든요. 게임이나 통계 관련 분야의 솔루션을 만드는 분들은 코드를 쉽게 이해할 수 있을겁니다.

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public string Main()
    {
        // 웹으로부터 Json Response 값
        string json = "[[1,2,3],[4,5,6,],[7,8,9]]";

        // Json 을 Parsing해서 배열로 변환
        var jArray = JArray.Parse(json);

        List<List<string>> list = new List<List<string>>();
        foreach (var item in jArray.Children())
            list.Add(item.Children().Select(s => s.Value<string>()).ToList());

        var result = CrossJoinLists(list);
        List<string> rtn = new List<string>();

        // 조합
        foreach (var r in result)
            rtn.Add(string.Join(",", r.ToArray()));

        // 조합 목록 구분
        return string.Join("@", rtn);
    }

    // 재귀 함수
    private static IEnumerable<List<T>> CrossJoinLists<T>(IEnumerable<List<T>> listofObjects)
    {
        var result = from obj in listofObjects.First()
                        select new List<T> { obj };

        for (var i = 1; i < listofObjects.Count(); i++)
        {
            var iLocal = i;
            result = from obj in result
                     from obj2 in listofObjects.ElementAt(iLocal)
                     select new List<T>(obj) { obj2 };
        }

        return result;
    }
}

 

이 코드를 실행하면, 정상적으로 C# 코드가 컴파일되지 않습니다. 기본적으로 엔지엠 매크로 시스템에서 제공하는 참조는 System 하나뿐입니다. 기본적인 내용들은 추가 처리없이 잘 동작합니다. 하지만, 이번 예제와같이 외부 라이브라리를 사용하는 경우 해당 라이브러리를 어셈블리 참조에 추가해야 합니다.

Newtonsoft.Json.dll

 

 

외부 라이브라리를 참조 추가하더라도 정상 동작하지 않을 수 있습니다. 해당 라이브러리가 엔지엠 매크로에 없기 때문입니다. 엔지엠 매크로 내부에 [ 시스템 파일 복사 ] 액션을 이용해서 "Newtonsoft.Json.dll" 파일을 복사해줘야 합니다. 이 라이브러리는 [ Json.NET ] 사이트에서 다운로드 받을 수 있습니다. 아래 그림과 같이 엔지엠 매크로 시스템의 Root에 원본 파일로 라이브러리를 선택해서 복사하세요.

 

 

매크로를 실행하면 결과 값이 아래와 같이 만들어집니다. 그전에 소스 코드에서 클래스 이름 메소드 이름을 설정하세요.

1,4,7@1,4,8@1,4,9@1,5,7@1,5,8@1,5,9@1,6,7@1,6,8@1,6,9@2,4,7@2,4,8@2,4,9@2,5,7@2,5,8@2,5,9@2,6,7@2,6,8@2,6,9@3,4,7@3,4,8@3,4,9@3,5,7@3,5,8@3,5,9@3,6,7@3,6,8@3,6,9

 

 

[ 변수 ]를 추가한 후 아이디에 순열조합이라고 적어줍니다.

 

 

순열 조합된 결과 값을 변수에 추가해줍니다.

 

 

[ 문자열 분리 ] 액션을 추가한 후 변수로부터 문자열을 가져옵니다. 그리고, 분리자 속성에 @를 입력하세요.

 

 

매크로를 실행하면 아래 2차원 배열이 순열 조합(Permutation Combination)된 배열로 만들어집니다. 

[
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]

 

배열은 총 27개입니다.

 

 

매크로를 실행하면 아래 결과와 같이 배열이 만들어집니다.

1,4,7
1,4,8
1,4,9
1,5,7
1,5,8
1,5,9
1,6,7
1,6,8
1,6,9
2,4,7
2,4,8
2,4,9
2,5,7
2,5,8
2,5,9
2,6,7
2,6,8
2,6,9
3,4,7
3,4,8
3,4,9
3,5,7
3,5,8
3,5,9
3,6,7
3,6,8
3,6,9

 

중복된 조합을 만들려면 C# 코드에서 단순히 for를 이용하거나 반복 조합을 만드는 코드를 참고해보면 좋을듯 합니다. C# 코드를 설명하기 보다는 엔지엠 매크로에서 어떻게 복잡한 로직을 좀 더 쉽고 간결하게 사용할 수 있는지에 포커스를 맞춰서 글을 읽어보세요. 이 글은 초보자를 위한 코딩 설명이 아니기 때문입니다^^

 

[ 각종 자동화 매크로 및 RPA 프로그램 제작 해드립니다. ]

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

 

원본 글 보기

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

 

엔지엠소프트웨어

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

www.ngmsoftware.com

#비활성매크로 #g102매크로 #철권매크로 #레이저마우스매크로 #ghub매크로 #녹화매크로 #키보드반복매크로 #로지텍마우스광클매크로 #플라스크매크로 #윈도우매크로 #비활성g매크로 #오토매크로 #자동사냥 #주식매크로 #오토핫키키보드 #오토핫키마우스 #오토핫키이미지 #지존오토 #기계식매크로 #하드웨어매크로 #무한반복매크로 #대량이메일발송매크로 #엑셀VBA매크로 #주식모니터링매크로 #이미지맥스 #심플핫키 #오토클리커 #UiPath #Brity #스푸퍼 #DKOM #모바일게임매크로 #다클라매크로 #다계정매크로 #인스타그램매크로 #짜맥매크로 #챗굴매크로

반응형

댓글