📣 더 깊은 내용이 담긴 '프날 오토핫키 강좌 v2'의 서적판이 공개되었습니다.
가장 최신의 오토핫키를 담은 '프날 오토핫키 강좌 v2'를 책으로 만나보세요!
v2 페이지에 공개된 분량보다 더욱 깊은 내용을 처음이라도 괜찮아, 오토핫키 프로그래밍을 통해 배울 수 있습니다.
전국 온/오프라인 서점에서 만나요!
책 더 알아보기 및 구매하기
GUI부분이 끝났습니다. 기초적인 부분만 해서 성에 차지 않으실 수도 있겠네요. 이번 강부터는 문자열에 대해 다루어보려고 합니다.
InStr()
InStr()은 주어진 문자열 내에 특정 문자열이 있는지 검사합니다.
InStr(Haystack, Needle)
- Haystack: 특정 문자열이 찾아질 전체 문자열입니다.
- Needle: 찾을 문자열입니다.
InStr()의 반환값은 "찾은 문자열의 위치"입니다. 전체 문자열중에서 특정 문자열이 몇 번째 위치에 있는지 알아낼 때 중요합니다.
아래처럼 사용하시면 되겠네요.
Var := "동해물과 백두산이 마르고 닳도록"
MsgBox, % InStr(var, "백두산이")
→ 6이 출력될겁니다. (동, 해, 물, 과, (공백), "백", "두", "산", "이")
조건문과 결합하면, 주어진 문자열 내에 특정 문자열이 있는지 판단하는 구문을 만들 수 있습니다.
InStr()함수의 반환값은 말씀드렸다싶이 "찾은 문자열의 위치"이기 때문입니다! 만약 찾았다면 1 이상의 값이 나오겠지요.
Var := "동해물과 백두산이 마르고 닳도록"
if (InStr(var, "백두산이") > 0)
MsgBox, 포함되어있습니다.
else
MsgBox, 포함되어있지 않습니다.
2020.03.05 추가
InStr()구문은 과거 IfInString 명령어를 대체합니다. IfInString은 권장되는 명령어가 아니기 때문입니다.
비권장 명령어임에도 과거에 IfInString을 써두었는데, 이제서야 InStr()이라는 올바를 구문을 강좌합니다. (_ _)
StrLen()
StrLen()은 문자열의 길이를 반환해주는 함수입니다. 우리가 별도로 작성해주지 않아도, 오토핫키에 기본적으로 들어있는 함수이기 때문에 선언 없이 사용해주면 됩니다.
var := StrLen("안녕하세요")
MsgBox, %var%
"안녕하세요"는 5글자이기 때문에 5가 출력될 것입니다.
조금 고급지게 사용하려면 아래처럼 쓸 수도 있으니 참고해주세요.
MsgBox, % StrLen("안녕하세요")
결과는 역시 5입니다.
괄호 안엔 변수를 그냥 써주고, 문자열을 따옴표로 감싸준다고 했습니다. 아래처럼 변수를 사용해 줄 수도 있다는 뜻입니다.
var := "안녕하세요"
MsgBox, % StrLen(var)
< 61. 프로그래밍 문제 (14) | 62. If(Not)InString과 StrLen() | 63. SubStr() >
⚠ 이 강좌는 오토핫키 v1을 다룹니다
지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.