NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    스크립트 매크로 텍스트 입력 또는 쓰기에 대한 이해. (with For 반복)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로는 텍스트를 쉽게 입력할 수 있는 액션들이 포함되어 있습니다. 텍스트를 입력할 때 Enter(Return)와 같은 줄바꿈을 사용할 수 있는데요. 윈도우는 줄바꿈을 다른 운영체제(Linux, Mac등등...)와 다르게 동작해서 문제를 읽으키곤 합니다. 프로그램마다 줄바꿈을 받아들이는 형태가 각각 달라서 실사용에 크게 문제가 되지는 않습니다. 하지만, RPA 매크로 프로그램들은 하나의 명령으로 다른 모든 프로그램에 동작해야 해서 몇가지 예외적인 처리가 필요합니다. 이 테스트를 위해 첨부되어 아래와 같은 스크립트를 하나 작성합니다. 첨부되어 있는 스크립트를 불러와도 됩니다.

    73ZH0gv.png

     

     

    텍스트 쓰기 액션의 텍스트는 아래와 같습니다. 줄바꿈이 하나 추가되어 있습니다.

    엔지엠소프트웨어
     

     

    그리고, 캐리지 리턴 제거 속성에 True가 설정되어 있죠? 이 값을 TrueFalse로 한번씩 테스트 해보세요. 아래 동영상처럼 줄바꿈이 사용자가 입력한데로 1번만 입력되는지 아니면 두번 입력되는지 차이를 확인할 수 있습니다. 물론, For 반복 액션 때문에 총 5번 입력되고 있는걸 확인할 수 있습니다.

    d2g1Uhz.gif

     

     

    운영체제마다 줄바꿈을 처리하는 방식이 달라서 발생하는 문제지만, 윈도우는 줄바꿈을 캐리지 리턴(Carriage Return)+라인 피드(Line Feed)로 처리합니다. 이렇게 된 이유는 타자기에서부터 동작을 가져와서 그렇습니다. 타자기를 사용해본적이 없는 분들이 많을텐데요. 저는 사용해봤습니다^^; 타자기에서 한줄을 모두 타이핑하면 캐리지가 다시 왼쪽으로 돌아가야 합니다. 그리고, 종이가 한줄 올라가야 하죠. 그래야 다음 줄에 다시 타이핑을 할 수 있는 상태가 됩니다.  이걸 윈도우에서는 \r\n과 같이 처리합니다. 여기까지는 크게 문제가 되지 않습니다. \r\n 입력을 \r\n 하나의 줄바꿈으로 처리하도록 하면 되니까요. 하지만, 모든 프로그램이 \r\n 에 대해서 한줄로 처리하지 않습니다. 그래서, 앞에 캐리지 리턴을 제거해야 할 필요가 있습니다.

     

    현재에는 줄바꿈을 \n으로만 처리합니다. 윈도우의 오래된 프로그램(메모장과 같은...)들은 여전히 \r\n을 한줄씩 처리해서 두줄이 바뀌는 결과를 나타냅니다. 그래서, 사용자는 한줄만 바꾸고 싶어도 두줄이 바뀌는 프로그램들이 발생하게 됩니다. 이런 경우를 위해 [ 텍스트 쓰기 ]에는 캐리지 리턴 삭제 속성이 존재합니다. 추가적으로 이 스크립트는 메모장에 텍스트를 쓰기 위해 가장 처음 액션인 마우스 [ 클릭 ]에서 메모장을 클릭해서 활성 상태로 만듭니다. 그래야 키보드 입력이 메모장에 입력되기 때문이죠. 마우스는 어떤 프로그램을 클릭할지 위치를 알기 때문에 문제가 되지 않습니다. 텍스트 쓰기는 어떤 프로그램에 입력할지 알 수 없기 때문에 클릭하거나 [ 윈도우 활성화 ] 액션을 사용해서 입력 받을 프로그램을 윈도우에 미리 알려야 합니다.

     

    For 반복 액션은 하위로 추가된 모든 액션을 사용자가 설정한 숫자만큼 반복시켜 줍니다. 초기값이 0이므로 0부터 증가값 1만큼 증가하면서 5까지 반복하게 됩니다. 이걸 쉽게 말하면 0부터 1씩 증가하면서 5보다 작을때까지 반복한다는 뜻입니다. 0, 1, 2, 3, 4 총 5번 반복합니다.

    AVhRI4m.png

     

     

    크게 어려운 부분은 없지만, 개발자가 아닌 비개발자가 보기에 왜 이렇게 동작하는지 잘 이해가 안될수도 있습니다. 저도 처음에는 그랬으니까요-_-; 자주 코딩을 하다보면 자연스럽게 외워지고 의문점이 들기 시작합니다. 의문을 가지게되면 관련 내용들을 찾아보게되고, 그렇다보면 동작 원리에 대해 좀 더 깊이있게 이해하죠. 이렇게 깊이 있게 이해하면 그동안 안보이던 것들이 서서히 보이기 시작하고, 퍼즐이 맞춰집니다. 의문을 가지고 검색해보고 정리하는 습관이 가장 빠르게 실력을 향상시키는 길이라고 저는 생각합니다^^;

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    첨부파일

    댓글목록

    등록된 댓글이 없습니다.