StrPut() / StrGet() [AHK_L 46+]

¹®ÀÚ¿­À» ¸Þ¸ð¸® ÁÖ¼Ò¿¡ ¶Ç´Â ¸Þ¸ð¸® ÁּҷκÎÅÍ º¹»çÇÕ´Ï´Ù. ¼±ÅÃÀûÀ¸·Î ÁÖ¾îÁø ÄÚµå ÆäÀÌÁö »çÀÌ¿¡ º¯È¯ÇÕ´Ï´Ù.

StrPut(String [, Encoding = None ] )
StrPut(String, Address [, Length] [, Encoding = None ] )
StrGet(Address [, Length] [, Encoding = None ] )

¸Å°³º¯¼ö

String

¹®ÀÚ¿­, ¼ýÀÚµµ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.

Address

¹®ÀÚ¿­À» Àаí/¾µ ÁÖ¼Ò.

Length

Àаí/¾µ ¹®ÀÚÀÇ ÃÖ´ë °³¼ö, ÇÊ¿äÇÏ¸é ³Î-Á¾·á ¹®ÀÚ Æ÷ÇÔ. ¹Ýȯ °ªÀ» ÂüÁ¶ÇϽʿÀ.

Encoding

StrGet¿¡ ´ëÇÑ ¼Ò½º ÀÎÄÚµù ¶Ç´Â StrPut¿¡ ´ëÇÑ Å¸°Ù ÀÎÄÚµù; ¿¹¸¦ µé¾î, "UTF-8", "UTF-16" or "CP936". Address¿Í Length¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ¼ýÄ¡ ½Äº°ÀÚ ¾Õ¿¡ "CP"¸¦ ºÙ¿©¾ß ÇÏ´Ï´Ù. ºó ¹®ÀÚ¿­À̳ª "CP0"À» ÁöÁ¤ÇÏ¸é ½Ã½ºÅÛ ±âº» ANSI ÄÚµå ÆäÀÌÁö¸¦ »ç¿ëÇÕ´Ï´Ù.

¹Ýȯ °ª

°¢ ÇÔ¼ö¿¡ ´ëÇÏ¿©, ¹«È¿ÇÑ ¸Å°³º¯¼ö´Â ºó ¹®ÀÚ¿­À» µ¹·ÁÁÝ´Ï´Ù.

StrPutÀº ¾º¿©Áø ¹®ÀÚÀÇ °³¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù. Address°¡ ÁÖ¾îÁöÁö ¾ÊÀ¸¸é ¹®ÀÚ´ÜÀ§·Î ÇÊ¿äÇÑ ¹öÆÛ Å©±â¸¦ µ¹·ÁÁÖ°í ¿¡·¯°¡ ÀϾ¸é 0À» µ¹·ÁÁÝ´Ï´Ù. Length°¡ ¼Ò½º ¹®ÀÚ¿­ÀÌ ±æÀ̺¸´Ù ÀÛÀ¸¸é, ÇÔ¼ö´Â ½ÇÆÐÇÏ°í 0À» µ¹·ÁÁÝ´Ï´Ù. Length°¡ Á¤È®ÇÏ°Ô ¼Ò½º ¹®ÀÚ¿­ÀÇ ±æÀÌÀ̸é, ¹®ÀÚ¿­Àº ³Î-¹®ÀÚ·Î Á¾·áÇÏÁö ¾Ê½À´Ï´Ù; ±×·¸Áö ¾ÊÀ¸¸é ¹ÝȯµÈ °³¼ö´Â ³Î ¹®ÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

StrGetÀº ÇÊ¿äÇÑ º¯È¯À» ¼öÇàÇÑ ÈÄ ¿äûµÈ ¹®ÀÚ¿­À» ±æÀ̸¦ µ¹·ÁÁÝ´Ï´Ù.

³íÆò

StrPutÀÇ String ¸Å°³º¯¼ö¿Í StrGetÀÇ ¹Ýȯ°ªÀº ¾ðÁ¦³ª ÇöÀç ½ÇÇà ÆÄÀÏÀÇ °íÀ¯ ÀÎÄÚµùÀ» µû¸¨´Ï´Ù. ¹Ý¸é¿¡ EncodingÀº ÁÖ¾îÁø Address¿¡ ÀÐ°í ¾µ ¹®ÀÚ¿­ÀÇ ÀÎÄÚµùÀ» ÁöÁ¤ÇÕ´Ï´Ù. EncodingÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ±× ¹®ÀÚ¿­Àº ±×³É ¾Æ¹« º¯È¯µµ ÀϾÁö ¾Ê°í ±×´ë·Î º¹»çµÇ°Å³ª ÃøÁ¤µË´Ï´Ù.

ÄÚµå ÆäÀÌÁö »çÀÌÀÇ º¯È¯ÀÌ ÇÊ¿äÇϸé, ÇÊ¿äÇÑ ¹öÆÛ Å©±â´Â ¼Ò½º StringÀÇ Å©±â¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù.

½ºÅ©¸³Æ®°¡ AutoHotkey Basic°úÀÇ È£È¯À» ÇÊ¿ä·Î ÇÏ¸é ¿©ÀüÈ÷ StrPut°ú StrGetÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ü ÀûÀýÇÑ ½ºÅ©¸³Æ® ÆÄÀϵéÀÌ ÇÔ¼ö ¶óÀ̺귯¸®¿¡ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ·± ½ºÅ©¸³Æ®µéÀº ¿ÀÅäÇÖÅ° °øµ¿Ã¼ Æ÷·³¿¡¼­ ¹ß°ßÇÒ ¼ö ÀÖ½À´Ï´Ù.

°ü·Ã Ç׸ñ

½ºÅ©¸³Æ® ȣȯ¼º, FileEncoding, VarSetCapacity()

¿¹Á¦

Length³ª EncodingÀ» Address ´ÙÀ½¿¡ Á÷Á¢ÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±×·± °æ¿ì EncodingÀº Àý´ë·Î ¼ýÄ¡ÇüÀÌ µÇ¸é ¾È µË´Ï´Ù:

strA := StrGet(addressA, "cp0")     ; OK
strA := StrGet(addressA, length, 0) ; OK
strA := StrGet(addressA, 0)         ; Error

StrPutÀº ƯÁ¤ÇÑ ÀÎÄÚµùÀ¸·Î ¹®ÀÚ¿­¿¡ ´ëÇÏ¿© ÇÊ¿äÇÑ ¹öÆÛ Å©±â¸¦ °è»êÇϱâ À§ÇÏ¿© ÇÑ ¹ø È£ÃâÀÌ °¡´ÉÇÕ´Ï´Ù. ´ÙÀ½, ±× ¹®ÀÚ¿­À» ÀÎÄÚµåÇؼ­ ¹öÆÛ ¾ÈÀ¸·Î ½á ³ÖÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÚÁÖ º¯¼ö¸¦ StrPut°ú ÇÔ²² »ç¿ëÇÑ´Ù¸é, ´ÙÀ½°ú °°Àº ÇÔ¼ö¸¦ ¿©·¯ºÐÀÇ ¶óÀ̺귯¸®¿¡ ³Ö¾î º¸½Ê½Ã¿À:

StrPutVar(string, ByRef var, encoding)
{
    ; °¡¿ë´É·ÂÀ» È®ÀÎÇÕ´Ï´Ù.
    VarSetCapacity( var, StrPut(string, encoding)
        ; StrPutÀº ¹®ÀÚ °³¼ö¸¦ µ¹·ÁÁÖÁö¸¸, VarSetCapacity´Â ¹ÙÀÌÆ®¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù.
        * ((encoding="utf-16"||encoding="cp1200") ? 2 : 1) )
    ; ±× ¹®ÀÚ¿­À» º¹»çÇϰųª º¯È¯ÇÕ´Ï´Ù.
    return StrPut(string, &var, encoding)
}