본문 바로가기
Autohotkey/강좌

[Autohotkey] 37. 문자열의 위치 , 원하는 위치부터 읽어오기 - StringGetPos , SubStr()

by 슈퍼닷 2013. 6. 9.
반응형

문자열의 위치를 얻는 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++ 를 안해주면 유니코드 문자가 뜰거에요.

 

 

반응형

댓글