StringGetPos

¹®ÀÚ¿­ ¾È¿¡¼­ ÁöÁ¤µÈ ºÎ¹®ÀÚ¿­ÀÇ À§Ä¡¸¦ ¿­¶÷ÇÕ´Ï´Ù.

StringGetPos, OutputVar, InputVar, SearchText [, L#|R#, Offset]
Position := InStr(Haystack, Needle [, CaseSensitive?, StartingPos]) ; ÀÚ¼¼ÇÑ °ÍÀº InStr() ÇÔ¼ö ÂüÁ¶.

¸Å°³º¯¼ö

OutputVar

¿­¶÷µÈ À§Ä¡¸¦ ÀúÀåÇÒ º¯¼öÀÇ À̸§. InputVarÀÇ Ã¹ ¹®ÀÚ¿¡ »ó´ëÀûÀÔ´Ï´Ù. À§Ä¡°¡ 0À̸é StringGetPos¿¡ ´ëÇÏ¿© ù ¹®ÀÚÀÌ°í À§Ä¡°¡ 1À̸é InStr()¿¡ ´ëÇÏ¿© ù ¹®ÀÚÀÔ´Ï´Ù.

InputVar

³»¿ëÀÌ °Ë»öµÉ ÀÔ·Â º¯¼öÀÇ À̸§. À̸§À» ÆÛ¼¾Æ® »çÀÎÀ¸·Î µÑ·¯ ½ÎÁö ¸¶½Ê½Ã¿À. ´Ü, º¯¼öÀÇ ³»¿ëÀÌ À̸§À̱⸦ ¹Ù¶ó´Â °æ¿ì¶ó¸é ¿¹¿ÜÀÔ´Ï´Ù.

SearchText

°Ë»öÇÒ ¹®ÀÚ¿­, ºÎÇÕÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê½À´Ï´Ù. ´Ü, StringCaseSense°¡ ÄÑÁ® ÀÖ´Â °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.

L#|R#

ÀÌ ¸Å°³º¯¼ö´Â InputVar ¾È¿¡¼­ SearchText°¡ ¿©·¯ ¹ø ÃâÇöÇÏ¸é ¸î ¹ø° ºÎÇÕÀ» ¹ß°ßÇÒÁö¿¡ ¿µÇâÀ» ¹ÌĨ´Ï´Ù . ÀÌ ¸Å°³º¯¼ö¸¦ »ý·«Çϸé, ù ¹ø° ºÎÇÕÀ» À§ÇØ InputVar¸¦ ¿ÞÂʺÎÅÍ °Ë»öÇÕ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö°¡ 1À̰ųª ±âÈ£ RÀ̸é, °Ë»öÀÌ InputVarÀÇ ¿À¸¥ÂʺÎÅÍ ½ÃÀÛÇØ ¿ÞÂÊÀ¸·Î ù ¹ø° ºÎÇÕÀ» ¹ß°ßÇÒ ¶§±îÁö °è¼ÓµË´Ï´Ù.

ù ¹ø° ºÎÇÕ¸»°í ´Ù¸¥ ºÎÇÕÀ» ¹ß°ßÇÏ·Á¸é, ±âÈ£ L ¶Ç´Â R ´ÙÀ½¿¡ ÃâÇö Ƚ¼ö¸¦ ÁöÁ¤ÇϽʽÿÀ. ¿¹¸¦ µé¾î, ¿À¸¥ÂÊ¿¡¼­ ³× ¹ø° ÃâÇöÀ» ¹ß°ßÇÏ°í ½ÍÀ¸¸é. r4¸¦ ÁöÁ¤ÇϽʽÿÀ. ÁÖÀÇ: ¼ýÀÚ¸¦ 0ÀÌÇÏ·Î ÁöÁ¤Çϸé, ºÎÇÕÀÌ ¹ß°ßµÇÁö ¾Ê½À´Ï´Ù.

Offset

¿ÞÂÊ ³¡ ¶Ç´Â ¿À¸¥ÂÊ ³¡À¸·ÎºÎÅÍ (À§ÀÇ ¸Å°³º¯¼ö¿¡ µû¶ó) °Ç³Ê ¶Û ¹®ÀÚÀÇ °³¼ö. »ý·«Çϸé, ±âº»°ªÀº 0ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½Àº ¿ÞÂÊ 10¹ø° ¹®ÀÚºÎÅÍ °Ë»öÀ» ½ÃÀÛÇÕ´Ï´Ù: StringGetPos, OutputVar, InputVar, abc, , 9. ÀÌ ¸Å°³º¯¼ö´Â Ç¥Çö½ÄÀÏ ¼ö ÀÖ½À´Ï´Ù..

ErrorLevel

ErrorLevelÀº ÁöÁ¤µÈ SearchTextÀÇ ÃâÇöÀ» InputVar ¾È¿¡¼­ ¹ß°ßÇÒ ¼ö ¾ø¾úÀ¸¸é 1ÀÌ ¼³Á¤µÇ°í ±×·¸Áö ¾ÊÀ¸¸é 0ÀÌ ¼³Á¤µË´Ï´Ù.

³íÆò

StringMid ±×¸®°í InStr()¿Í ´Ù¸£°Ô, StringGetPos¿¡ ´ëÇÏ¿© 0Àº ù ¹ø° ¹®ÀÚÀÇ À§Ä¡·Î Á¤Àǵ˴ϴÙ.

¿­¶÷µÈ À§Ä¡´Â ¾ðÁ¦³ª InputVarÀÇ Ã¹ ¹®ÀÚ¿¡ »ó´ëÀûÀÔ´Ï´Ù. L#|R# ±×¸®°í/¶Ç´Â OffsetÀÌ ÁöÁ¤µÇ¾î ÀÖµç ¸»µç »ó°üÀÌ ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î, ¹®ÀÚ¿­ "abc"°¡ 123abc789¿¡¼­ ¹ß°ßµÇ¸é, º¸°íµÈ ±×ÀÇ À§Ä¡´Â ¾ðÁ¦³ª 3ÀÔ´Ï´Ù. ¾î¶² ¹æ¹ýÀ¸·Î ¹ß°ßÇß´ÂÁö´Â »ó°üÀÌ ¾ø½À´Ï´Ù.

SearchTextÀÇ ÁöÁ¤µÈ ÃâÇöÀÌ InputVar¾È¿¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é, OutputVar´Â -1ÀÌ ¼³Á¤µÇ°í ErrorLevel´Â 1ÀÌ ¼³Á¤µË´Ï´Ù.

SplitPath¸¦ »ç¿ëÇÏ¸é º¸´Ù ½±°Ô ÆÄÀÏ °æ·Î¸¦ ±×ÀÇ µð·ºÅ丮¿Í ÆÄÀÏÀ̸§ ±×¸®°í È®ÀåÀÚ·Î °¡¸¦ ¼ö ÀÖ½À´Ï´Ù.

³»Àå º¯¼ö %A_Space%¿Í %A_Tab%¿¡ °¢°¢ ½ºÆäÀ̽º ¹®ÀÚ Çϳª¿Í ÅÇ ¹®ÀÚ Çϳª°¡ µé¾î ÀÖ½À´Ï´Ù. SearchTextÀÇ ¾ÕÀ̳ª µÚ¿¡¼­ ½ºÆäÀ̽º¿Í ÅÇÀ» µû·Î °Ë»öÇÒ °æ¿ì¿¡ À¯¿ëÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ

InStr(), RegExMatch(), IfInString, if var in/contains MatchList, StringCaseSense, StringReplace, SplitPath, StringLeft, StringRight, StringMid, StringTrimLeft, StringTrimRight, StringLen, StringLower, StringUpper, if var is type

¿¹Á¦

Haystack = abcdefghijklmnopqrs
Needle = def
StringGetPos, pos, Haystack, %Needle%
if pos >= 0
    MsgBox, ¹®ÀÚ¿­ÀÌ À§Ä¡ %pos%¿¡¼­ ¹ß°ßµÇ¾ú½À´Ï´Ù.

 

; ¿¹Á¦ #2:
; ÆÄÀÏÀÌ Àüü °æ·Î¸¦ °¢ ±¸¼º¿ä¼Ò·Î ºÐÇØ ÇÕ´Ï´Ù.
; StringSplit ¶Ç´Â ÆÄ½Ì È¸µ¹À̸¦ »ç¿ëÇϸé 
;  ÈξÀ ´õ ½±°Ô °¡¸¦ ¼ö ÀÖ½À´Ï´Ù. ±×·¡¼­ ¾Æ·¡´Â ±×Àú º¸¿©Áֱ⠿ëÀÔ´Ï´Ù.
FileSelectFile, file, , , ±í¼÷È÷ ³»Æ÷µÈ Æú´õ ¾È¿¡¼­ ÆÄÀÏÀ̸§ Çϳª¸¦ °í¸£½Ê½Ã¿À:
if file <>
{
    StringLen, pos_prev, file
    pos_prev += 1 ; ¸¶Áö¸· ¹®ÀÚ µÚ¿¡ À§Ä¡¿¡ ¸Â°Ô Á¶ÀýÇÕ´Ï´Ù.
    Loop
    {
        ; ¿À¸¥ÂÊÀ¸·ÎºÎÅÍ N¹ø° ÃâÇöÀ» °Ë»öÇÕ´Ï´Ù:
        StringGetPos, pos, file, \, R%A_Index%
        if ErrorLevel
            break
        length := pos_prev - pos - 1
        pos_prev := pos
        pos += 2  ; StringMid¿¡ »ç¿ëÇϱâ À§ÇØ Á¶Á¤ÇÕ´Ï´Ù.
        StringMid, path_component, file, %pos%, %length%
        MsgBox Path component #%a_index% (from the right) is:`n%path_component%
    }
}