본문 바로가기
게임

C# .NET 매크로 프로그램 만들기. (문자열 연결)

by 업무자동화 2024. 4. 22.
반응형

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

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

 

엔지엠소프트웨어

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

www.ngmsoftware.com

#매크로 #메크로 #매크로프로그램 #엔지엠소프트웨어 #엔지엠에디터 #엔지엠플레이어 #비활성매크로 #하드웨어매크로 #기계식매크로 #마우스광클릭 #키보드매크로 #이미지서치 #이미지매치 #블로그 #카페 #인스타그램 #유튜브 #소셜네트워크 #카카오톡 #텔레그램 #자동화

 

 

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

 

안녕하세요. 엔지엠소프트웨어입니다. 오늘은 문자열 연결 액션을 만들어 볼건데요. 프로그래밍 코딩에서는 간단하게 처리할 수 있지만, GUI를 제공하는 매크로 프로그램의 경우 이것저것 신경써야 할 것들이 많습니다. 그래도 다른 액션들에 비하면 많이 쉬운 편이죠^^;

 

문자열 연결 액션은 Expression 폴더에 추가했습니다. 뭔가 처리 후 결과를 내는 액션들은 모두 여기에서 작업할겁니다.

 

 

속성은 2개뿐입니다. 간단하죠? 변수로부터 처리하기 위해 Variables 목록과 문자를 연결할 때 자동으로 구분자를 처리하기 위한 Separator가 있습니다.

[LocalizedCategory("Action")]
[LocalizedDisplayName("VariableList")]
[LocalizedDescription("VariableList")]
[Browsable(true)]
[DefaultValue(null)]
public string[]? Variables { get; set; }

[LocalizedCategory("Action")]
[LocalizedDisplayName("Separator")]
[LocalizedDescription("Separator")]
[Browsable(true)]
[DefaultValue(null)]
public string? Separator { get; set; }

 

액션 처리 로직은 아래와 같습니다. 여기서 중요하게 생각한 부분은 플레이스홀더 처리입니다.

public override string? Execute(IPlayer player)
{
    var id = base.Execute(player);

    var leftValue = Ai.Common.Helper.GetMatches(player, this.GetType().GetProperty(nameof(LeftValue)), LeftValue);
    var rightValue = Ai.Common.Helper.GetMatches(player, this.GetType().GetProperty(nameof(RightValue)), RightValue);
    var separator = Ai.Common.Helper.GetMatches(player, this.GetType().GetProperty(nameof(Separator)), Separator);

    Result = leftValue + separator + rightValue;

    if (Variables != null && Variables.Length > 0)
    {
        foreach (string variable in Variables)
        {
            var v = Ai.Common.Helper.GetMatches(player, this.GetType().GetProperty(nameof(Variables)), variable);

            if (string.IsNullOrEmpty(separator))
                Result += v;
            else
                Result += v + separator;
        }

        if (!string.IsNullOrEmpty (separator) && Result.EndsWith(separator))
            Result = Result.Substring(0, Result.Length - separator.Length);
    }

    return id;
}

 

왼쪽 값은 1이고, 오른쪽 값은 2입니다. 그리고, 구분자로 +를 입력했기 때문에 결과는 1+2가 됩니다.

 

 

만약, 변수로부터 데이터를 가져와서 처리하려면 아래와 같이 만들면 됩니다. 변수 a와 b에는 각각 초기값이 1과 2로 등록되어 있습니다.

 

 

변수 가져오기에서 왼쪽 값과 오른쪽 값을 변수로부터 가져오면 됩니다.

 

 

연결할 문자가 3개 이상이라면 이 방법으로 처리하기는 매우 까다롭습니다. 문자열 연결 액션을 2개 만들어서 변수에 넣었다가 빼야 하거든요. 그래서, 변수 목록을 이용해서 처리할 수 있도록 했습니다. 아래와 같이 변수 c를 1개 더 추가하세요.

 

 

변수 목록을 클릭하고, 한줄에 하나씩 변수 이름을 적어줍니다.

 

 

매크로를 실행하고 결과를 확인해보면 변수들이 모두 + 구분자로 연결된 것을 확인할 수 있습니다.

 

 

플레이스홀더를 이용해서 아래와 같이 사용해도 됩니다.

 

 

다음에는 이 내용을 응용해서 사칙연산 액션을 만들어 보도록 하겠습니다. 가장 많이 사용되는 액션이 사칙연산, 좌표계산과 같은 액션들입니다. 더 복잡한 산술연산자들도 있지만, 거의 쓸일은 없을겁니다. 그렇더라도 엔지엠 6에 추가되었던 모든 액션들은 추가할겁니다. 아무래도, 복잡한 통계식이나 연속적인 트랜드를 분석하는 용도라면 데이타베이스를 활용하는게 더 좋기 때문에 매크로 프로그램에서 이런 것들의 활용도가 많이 떨어질수밖에 없습니다.

 

많은 데이터를 처리해야 하는 경우 컴퓨터의 메모리에서 모두 처리하기 보다는 대용량 데이터 처리에 특화된 시계열 DB나 관계형 DB를 이용해서 처리된 결과만 매크로에서 사용해야 합니다. 엔지엠소프트웨어 홈페이지에도 간단하지만, PostgreDB나 InfluxDB에 대한 내용들도 있으니 인터넷에 한번 검색 해보시면 좋을듯 합니다. 둘다 무료로 사용할 수 있어서 실제 현업에서 많이 채택하는 데이터베이스입니다.

 

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

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

 

원본 글 보기

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

 

엔지엠소프트웨어

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

www.ngmsoftware.com

 

반응형

댓글