IniRead, 던전, 설정.ini, 매크로설정, 던전 ; 설정.ini 에서 던전값을 읽어옴
던전좌표 := 450 + 40 * %던전% ; 던전 좌표의 x값이 490, 530, 570, 610... 이라 if문이나 loop문을 사용하지 않고 x값을 던전 좌표에 저장
MsgBox, %던전% ; 2라고 출력
MsgBox, %던전좌표% ; 아무것도 입력되어있지 않음
IniRead로 읽어온 값을 숫자로 인식하지 못하여 계산이 안되는거 같은데,
숫자로 읽어들일 수 있는 다른 방법이 있거나 불가능한건가요?
아래가 순서대로 출력된 창입니다.
코드를 짜고 오류가 생기면 디버깅을 하지요
뭐가 잘못되었는지 가설을 세우시는 것까지는 잘 하셨습니다.
가설을 세우셨으면? 검증을 해보셔야겠죠.
보통은 내가 의심하는 부분을 확실한 것으로 바꾸어 단계별로 확인해보는식으로 검증을 하지요.
본문 상황이라면 맨위 Iniread 구문 주석 처리하고 그 자리에 던전:=2 같은걸 넣어보면 간단한 일입니다.
그리고, 그렇게 해보시면 아시겠지만 이런식으로 그냥 숫자를 넣어도 계산이 안되실겁니다 아마
그럼 뭐가 틀렸을까요?
던전좌표 := 450 + 40 * 던전
이렇게 하셔야 됩니다.
스트링에서 변수를 쓰려면 %싸인을 씁니다
반면 표현식에서는 변수에 %를 쓰지 않습니다. 대신 여기서는 스트링을 ""로 묶습니다
그런데 표현식에서도 %를 쓰는 경우가 있는데, Dynamic Variable일 경우 그렇습니다.
즉 표현식 안에서 %싸인으로 변수를 감싸면 (%Var%) Var에 저장된 문자열을 이름으로 가진 변수를 불러옵니다.
그래서.......
던전좌표 := 450 + 40 * %던전%
이 식은 문법적으로는 오류가 없는 것입니다. 다만 잘못 사용하신 것이지요
간단한 예를 들자면
tmp:=2
던전:="tmp"
던전좌표 := 450 + 40 * %던전%
이것은
던전좌표 := 450 + 40 * tmp
이것과 같습니다. 즉 제대로 계산이 되겠지요