반응형
# 호출 예
# ${StrContains} '반환' '찾을 문자열' '원본 문자열'
# ${StrContains} $0 "tri" "The String"
# 성공 시 $0 == "tri", 실패 시 $0 == ""
!macro _StrContains un
Function ${un}_StrContains
Push $R0 # 찾을 문자열
Exch
Pop $R0
Push $R1 # 원본 문자열
Exch 2
Pop $R1
Push $R2 # 리턴 문자열
Push $R3
Push $R4
Push $R5
Push $R6
;MessageBox MB_OK "찾을 문자열[$R0], 원본 문자열[$R1]"
StrCpy $R2 ""
StrCpy $R3 -1
StrLen $R4 $R0
StrLen $R6 $R1
loop:
IntOp $R3 $R3 + 1
StrCpy $R5 $R1 $R4 $R3
StrCmp $R5 $R0 found
StrCmp $R3 $R6 done
Goto loop
found:
StrCpy $R2 $R0
Goto done
done:
Pop $R6
Pop $R5
Pop $R4
Pop $R3
Exch $R2
Exch
Pop $R0
Exch
Pop $R1
FunctionEnd
!macroend
!insertmacro _StrContains ""
!insertmacro _StrContains "un."
!macro StrContains OUTPUT str_find str_origin
Push "${str_origin}"
Push "${str_find}"
!ifndef __UNINSTALL__
Call _StrContains
!else
Call un._StrContains
!endif
Pop "${OUTPUT}"
!macroend
!define StrContains "!insertmacro StrContains"
반응형
'NSIS > Reference' 카테고리의 다른 글
[NSIS] 원본 문자열의 앞에서부터 원하는 문자의 인덱스 찾기 (0) | 2024.12.09 |
---|---|
[NSIS] 원본 문자열의 뒤에서부터 원하는 문자의 인덱스 찾기 (0) | 2024.12.09 |
[NSIS] 문자열에서 찾아 바꾸기 (0) | 2024.12.09 |
[NSIS] Install 영역과 Uninstall 영역 모두에서 호출 가능한 함수? 매크로? 기본 포맷 (0) | 2024.12.08 |
[NSIS] 실행되는(설치 파일) 자기 경로 얻어오기 (0) | 2024.12.08 |