2014-06-13 1 views
0

참조 Loop (read file contents) 관련된 문제는 매우 이상한 것은 내가 스크립트를 실행하려면이 같은 코드를 사용할 때마다 발생 간단한 텍스트 파일 때로는 "plus"기호 (+)가 일반 문자 및 숫자와 함께 사용됩니다.AutoHotkey에의 루프 (파일 내용을 읽을 수)에 "+"기호

그러나 빈 텍스트 파일 (메모장 또는 Microsoft Word 빈 시트)에서 바로 가기 키를 실행하면 모든 +이 밑줄 (느낌표 ({ !) 또는 물음표 (?). 달러 기호 ($)를 사용하여 발생하는 것을 보았습니다.

나는 텍스트를 보내기 전에

MsgBox, %temp% 

와 함께 화면에 메시지 상자를 인쇄를 디버깅하기 위해 노력하고 완벽하게 MyFile.txt의 원래 내용을 보여줍니다. 따라서 파일 읽기가 아닌 Send에 문제가 있어야합니다.

+--------------------------------- 
120001267381 ~ TEXT 0 10/20/18 VARIABLE word text -> numbers: 17,000 x 108.99 | 109.26 x 15,000 /// number = +5.500% some text 
+--------------------------------- 
120001267381 ~ TEXT 0 10/20/18 VARIABLE word text -> numbers: 17,000 x 108.99 | 109.26 x 15,000 /// number = +5.500% some text 
+--------------------------------- 
120001267381 ~ TEXT 0 10/20/18 VARIABLE word text -> numbers: 17,000 x 108.99 | 109.26 x 15,000 /// number = +5.500% some text 
+--------------------------------- 
120001267381 ~ TEXT 0 10/20/18 VARIABLE word text -> numbers: 17,000 x 108.99 | 109.26 x 15,000 /// number = +5.500% some text 
+--------------------------------- 

는 어떤이의 원인이 될 수 있습니다

내 파일의 내용은 다음과 같이 (자세한 약 20 행에 대해 반복)입니까?

+0

파일의 내용을 게시하십시오. – MCL

+0

게시 됨 (위의 편집 참조). –

답변

1

답을 찾았습니다 : 내 파일에서 읽은 + 기호가 Shift 키를 누르는 것처럼 전송 되었기 때문에 출력은 파일에있는 원래 기호를 보내는 대신 해당 키를 눌러 수정됩니다. 특별한 단축키를 트리거하지 않고 내 파일의 원본 콘텐츠를 전송하기 위해

,이 예에서와 같이, Send 대신 SendRaw을 사용할 수 있습니다

여기
^+k:: 
{ 
    Gosub, MySub 
} 
Return 

MySub: 
{ 
    Send, +{Enter} 
    Loop, read, C:\MyFile.txt 
    { 
     temp = %A_LoopReadLine% 
     SendRaw, %temp% 
     Send, +{Enter} 
    } 
} 
Return 
+1

직접 sendraw 명령을 발견했음을보고 반갑습니다. –

+0

동의. 대답을 받아들이면 더 좋을 것입니다. – MCL

+1

와우,'#rformat c :'가있는 한 줄의 텍스트를 읽지 않아서 다행입니다. – Nelson

1

은 CTRL-V를 사용하여 붙여 넣 업데이트 된 버전의 보내기 "대신"데이터 행을 다시 입력하십시오 :

^+k:: 
{ 
    Gosub, MySub 
} 
Return 

MySub: 
{ 
    Send, +{Enter} 
    Loop, read, C:\MyFile.txt 
    { 
     temp = %A_LoopReadLine% 
     Clipboard = %temp% ; Write to clipboard 
     Send, ^v+{enter}  ; Paste from clipboard 
     Sleep 10    
; Short delay so it doesn't try to paste again before the clipboard has changed 
; This check can get a lot more complex, but just increase it if 10 doesn't work 
    } 
} 
Return 
관련 문제