NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 텍스트 파일에서 줄바꿈을 인식해서 어떤 동작을 수행하는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 텍스트 파일에서 줄바꿈을 인식해서 어떤 동작을 수행하고 싶을 때 이 예제를 참고하시면 도움이 될 수 있습니다. 여러가지 방법들이 있을수는 있겠지만, 제가 생각하는 방법으로 구현 해봤습니다. 테스트를 위해 엔지엠 매크로를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    텍스트 문서는 아래와 같이 작성 해두었습니다.

    EqG2kcX.jpg

     

     

    기본적인 구조는 아래와 같습니다. [ 변수 추가 ] 액션과 [ 텍스트 파일 ] 액션 그리고, [ 문자열 분리 ] 액션을 추가하세요.

    7B0HuIW.jpg

     

     

    변수 추가 액션에는 아이디를 "a"로 설정하세요.

    e9atvtM.jpg

     

     

    텍스트 파일 액션에서 바탕화면의 txt 파일을 선택하세요. 여기까지 작성된 내용을 실행하면 데이터쪽에 라인수와 내용을 확인할 수 있습니다. 줄바꿈까지 있어서 총 5줄입니다.

    UYiuG06.jpg

     

     

    텍스트 파일에서 읽어온 내용을 다른 액션에서 사용하려면 변수에 저장해야 합니다. 아래와 같이 a변수에 결과 내용을 추가하세요.

    vjkIUFq.jpg

     

     

    변수로부터 원본 문자열로 텍스트 내용을 가져오세요.

    rBbZuFY.jpg

     

     

    분리자에는 \r\n을 입력하세요. \r\n은 줄바꿈 기호로 눈에는 안보이지만, 윈도우 내부에서는 이 기호를 줄바꿈으로 처리해줍니다. 매크로를 실행하면 배열은 5개가 만들어집니다.

    ExfynnJ.jpg

     

     

    텍스트 내용과 동일하게 가져왔습니다.

    ppgO9Tp.jpg

     

     

    결과 배열을 변수에 다시 추가 해줍니다.

    dyde6Bi.jpg

     

     

    스크립트에 [ Foreach 반복 ] 액션을 추가하세요. 그리고, 아래 그림처럼 a변수의 배열을 Forecah 반복의 배열로 가져오세요. 이렇게하면 Foreach 반복 액션은 배열의 항목 수만큼 반복하며 하나씩 항목의 값을 가져옵니다.

    DV647yX.jpg

     

     

    항목 하나 하나 처리하기 위해 변수 b를 추가 했습니다.

    aYI4N29.jpg

     

     

    Foreach 반복에서 항목의 내용을 변수 b에 추가 해줍니다.

    HeyAg3M.jpg

     

     

    Foreach 반복 액션은 효율을 위해서 내용이 없으면 자동으로 건너뛰도록 되어 있습니다. 하지만, 공백도 처리하려면 아래와 같이 "공백문자 제외"를 "False"로 설정하세요.

    xN4DKNJ.jpg

     

     

    만약, 아래와 같이 문자열에 공백도 있고, 문자열의 앞뒤로 공백이 있는 경우가 있다고 가정 해봅시다.

    bZyDejK.jpg

     

     

    아래 그림과 같이 문자열 분리 액션에서 "앞뒤 공백 제거"를 "True"로 설정한 후 다시 실행 해보세요. 결과 배열을 보면 문자열 사이의 공백은 남아 있지만, 줄의 앞과 뒤 공백들은 모두 삭제 되었습니다. 참고로, 텍스트 파일의 TAB도 공백으로 처리됩니다. 그래서, 탭을 입력하고 실행해도 모두 제거된 것을 확인할 수 있습니다.

    e1Le6Bq.jpg

     

     

    [ 텍스트 체크 ] 액션을 Foreach 반복 안쪽에 추가하세요. 그리고, [ 메세지 박스 ] 액션도 2개 추가 해줍니다. 아래와 같이 아이디도 각각 설정하세요.

    5bQJjkl.jpg

     

     

    조건 루틴을 건너뛰기 위해 [ 액션 이동 ]과 [ 그룹 ] 액션을 추가 해줍니다. 그리고, True 조건이 실행되고, False 조건이 건너뛸 수 있도록 아래와 같이 설정하세요.

    eJLYXaY.jpg

     

     

    메세지 박스 액션의 내용에 각각 줄바꿈텍스트를 입력하세요.

    52JUZ2n.jpg

     

     

    매크로를 실행하면 텍스트와 줄바꿈이 번갈아 가면서 실행되는걸 확인할 수 있습니다.

     

     

    읽어온 내용들을 메모장에 기록 해볼텐데요. [ 윈도우 활성화 ] 액션을 아래 그림과 같이 추가하고, 메모장을 선택 해주세요.

    NY25niN.jpg

     

     

    기존에 테스트를 위해 추가했던 액션들을 모두 지우고, [ 텍스트 쓰기 ] 액션을 추가 해줍니다. 그리고, 텍스트 체크에서 설정한 조건을 아래 그림처럼 변경하세요.

    UA1eJDH.jpg

     

     

    아래 그림과 같이 줄바꿈에서는 1초를 기다리게 설정했습니다.

    hqoiDG5.jpg

     

     

    텍스트 쓰기의 변수 가져오기를 아래와 같이 설정하세요.

    U6tGbXt.jpg

     

     

    위에서 윈도우 활성화 액션의 설정을 하나 빼먹었습니다. 아래와 같이 메모장 활성화 옵션을 "ActiveBringToFront"로 변경 해주세요.

    eKHPeMs.jpg

     

     

    매크로를 다시 실행 해볼까요? 줄바꿈을 기준으로 배열을 만들었기 때문에 줄바꿈 기호들이 모두 사라진 상태입니다. 따라서, 반복 횟수는 정상 동작하지만 원본과 동일하게 텍스트를 쓸 수 없습니다.

     

     

    아래와 같이 문자열 분리의 속성을 설정하세요.

    Qqf445h.jpg

     

     

    눈에는 안보이는 이스케이프 특수 문자들을 제거하고, 빈 공백 비교로 처리하도록 이스케이프 문자 제거 속성을 True로 변경하세요.

    7oJZBm7.jpg

     

     

    마지막으로 매크로를 실행해서 결과를 확인 해보세요. 텍스트 문서가 정형화되어 있으면 이렇게 복잡하게 처리하지 않아도 됩니다. 하지만, 줄바꿈 기호뿐만 아니라 줄바꿈에 스페이스가 하나 이상 포함되거나 탭과 같은 눈에 안보이는 것들이 포함되어 있으면 제대로 문자열을 분리할 수 없고, 비교도 안됩니다. 사람이 눈으로 볼 때는 같아 보이지만, 윈도우 시스템 또는 프로그래밍에서는 전혀 다른 문자입니다. 단지 눈에 보이지만 않을뿐이죠^^; 그래서, 이런 많은 경우의 수를 쉽게 처리하기 위해 옵션들을 잘 활용해야 합니다.

     

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.