문자열의 위치를 얻는 StringGetPos
이 파싱 명령어는 이전 글 에서 배웠던 위치를 필요로 하는 명령어 에서 쓰이겠죠.
이 글에서 배울 SubStr() 에서도 쓰일테구요.
StringGetPos,변수,문자열,찾을문자열
입니다.
[스크립트]
String=SFAD
StringGetPos,변수,String,F
msgbox,% 변수
이 스크립트와 달리 String 에 영어 말고 한글을 줄경우에 같은 길이지만 다른 결과가 나올수 있습니다.
ex) 가나다라 => 나의 위치 : 2 , 가의위치 : 0 , 다의위치: 4 , 라의위치 : 6
한글은 2byte 고 영어나 이런거는 1byte 라서 그렇다고 들었습니다.
한글은 조합되는 문자고 영어나 이런거는 따로 따로 쓰이기 때문이죠.
이제 SubStr() 에 대해 배워보죠.
이것은 원하는 위치에서부터 원하는 길이만큼 문자열을 읽어옵니다.
SubStr() 은 함수입니다.
Autohotkey 에서 제공하는 함수입니다.
모든 함수는 Expression ( 익스프레션) 형식으로 쓰이죠.
SubStr() 도 마찬가지입니다.
익스프레션 기억안나시는분들 보시면 됩니다
SubStr() 의 형태는 이렇습니다.
변수 := SubStr(문자열,시작위치,길이)
[스크립트]
문자열=가나다라
변수 := SubStr(문자열,1,2)
msgbox,% 변수
결과는 가
입니다.
2byte여서 이런 결과가 나옵니다.
이번엔 StringGetPos 와 연관지어 예제를 봅시다.
[스크립트]
문자열=가나다라
StringGetPos,Pos,문자열,나
Pos++
변수:=SubStr(문자열,Pos,2)
msgbox,% 변수
Pos++ 를 해주는 이유는 Pos가 저희가 생각하는 것보다 - 1 되서 나와서 에요.
Pos++ 은 Pos + 1 과 같습니다.
만약 Pos++ 를 안해주면 유니코드 문자가 뜰거에요.
'Autohotkey > 강좌' 카테고리의 다른 글
[Autohotkey] 39. 윈도우 창이 있다면 .... 또는 없다면 ..... - IfWinExist , IfWinNotExist (0) | 2013.06.09 |
---|---|
[Autohotkey] 38. 정규식 - RegExMatch() (2) | 2013.06.09 |
[Autohotkey] 36. 원하는 위치에서 왼쪽 , 오른쪽으로 문자열을 읽어온다. - StringTrimLeft / Right (2) | 2013.06.09 |
[Autohotkey] 35. 문자열의 왼쪽,오른쪽 양옆의 문자열을 원하는 숫자만큼 읽어온다. - StringLeft / Right (1) | 2013.06.09 |
[Autohotkey] 34. 문자열 치환 - StringReplace (1) | 2013.06.09 |
댓글