ÆÄÀÏÀ» ¿±´Ï´Ù.
file := FileOpen(Filename, Flags [, Encoding])
¿ ÆÄÀÏÀÇ °æ·Î. Àý´ë °æ·Î¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é A_WorkingDir¿¡ ÀÖ´Ù°í °£Áֵ˴ϴÙ.
[v1.1.17+]: Ç¥ÁØ ÀÔ·Â/Ãâ·Â/¿¡·¯ ½ºÆ®¸²À» ¿·Á¸é º°Ç¥¸¦ (¶Ç´Â º°Ç¥ µÎ °³¸¦) ¾Æ·¡¿¡ º¸¿©ÁÖ´Â ¹Ù¿Í °°ÀÌ ÁöÁ¤ÇϽʽÿÀ:
FileOpen("*", "r") ; Ç¥ÁØÀÔ·Â FileOpen("*", "w") ; Ç¥ÁØÃâ·Â FileOpen("**", "w") ; Ç¥ÁØ¿¡·¯
[in AHK_L 54+] ¿øÇÏ´Â Á¢±Ù ¸ðµå¸¦ °¡¸®Å°´Â ¹®ÀÚ ±×¸®°í ´ÙÀ½¿¡ ´Ù¸¥ ¿É¼ÇÀÌ µû¶ó¿Í ±¸¼ºµÈ ¹®ÀÚ¿ (¼±ÅÃÀûÀ¸·Î »çÀÌ¿¡ ½ºÆäÀ̽º ¶Ç´Â ÅÇ); ¶Ç´Â [ AHK_L 42+] ¼ýÄ¡ Ç÷¡±×ÀÇ Á¶ÇÕ (ÇÕ°è). Áö¿øµÇ´Â °ªµéÀº ¾Æ·¡ Å×ÀÌºí¿¡ ±â¼úÇÕ´Ï´Ù.
ÆÄÀÏ¿¡ UTF-8 ¶Ç´Â UTF-16 ¹ÙÀÌÆ® ¼ø¼ Ç¥½ÄÀÌ ¾øÀ» ¶§, ¶Ç´Â h
(ÇÚµé) ÇÁ·¡±×°¡ »ç¿ëµÉ ¶§ ÅؽºÆ® I/O¿¡ »ç¿ëÇÒ ÄÚµå ÆäÀÌÁöÀÔ´Ï´Ù. »ý·«µÇ¸é, A_FileEncodingÀÇ ÇöÀç °ªÀÌ »ç¿ëµË´Ï´Ù.
Á¢±Ù ¸ðµå (¼·Î-¹èŸÀûÀÓ) | ||
---|---|---|
r | 0 | Read: ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é ½ÇÆÐÇÕ´Ï´Ù. |
w | 1 | Write: »õ ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù, ±âÁ¸ÀÇ ÆÄÀÏÀ» µ¤¾î¾²±â ÇÕ´Ï´Ù. |
a | 2 | Append: ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é »õ ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù, ±×·¸Áö ¾ÊÀ¸¸é ÆÄÀÏ Æ÷ÀÎÅ͸¦ ÆÄÀÏÀÇ ³¡À¸·Î À̵¿ÇÕ´Ï´Ù. |
rw | 3 | Read/Write: ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é »õ ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù. |
h | FilenameÀÌ °´Ã¼ ¾È¿¡ ½Î ³ÖÀ» ÆÄÀÏ ÇÚµéÀÓÀ» ³ªÅ¸³À´Ï´Ù. °øÀ¯ ¸ðµå Ç÷¡±×´Â ¹«½ÃµË´Ï´Ù. ±×¸®°í ÀÌ ÇÚµéÀÌ °¡¸®Å°´Â ÆÄÀÏÀ̳ª ½ºÆ®¸²Àº ¹ÙÀÌÆ® ¼ø¼ Ç¥½ÄÀÌ Á¡°ËµÇÁö ¾Ê½À´Ï´Ù. ÆÄÀÏ ÇÚµéÀº ÆÄÀÏ °´Ã¼°¡ Æı«µÉ ¶§ ÀÚµ¿À¸·Î Àá±âÁö ¾Ê½À´Ï´Ù. ±×¸®°í Close¸¦ È£ÃâÇØ ºÁ¾ß ¾Æ¹« È¿°úµµ ¾ø½À´Ï´Ù. ÁÖÀÇ ÇϽʽÿÀ. FilenameÀÌ ÆÄÀÌÇÁ³ª Åë½Å ÀåÄ¡ °°ÀÌ À§Ä¡ ÁöÁ¤ÀÌ ¾È µÇ´Â(nonseeking) ÀåÄ¡¸¦ °¡¸®Å°´Â ÇÚµéÀ̸é Seek, Tell ±×¸®°í Length¸¦ »ç¿ëÇÏ¸é ¾È µË´Ï´Ù. | |
°øÀ¯ ¸ðµå Ç÷¡±× | ||
-rwd | Àбâ, ¾²±â ±×¸®°í Áö¿ì±â Á¢±ÙÀ» À§ÇØ ÆÄÀÏÀ» Àá±Ý´Ï´Ù. r , w ±×¸®°í d À» Á¶ÇÕÇØ »ç¿ëÇصµ µË´Ï´Ù. - ¸¦ ÁöÁ¤Çϸé -rwd ¸¦ ÁöÁ¤ÇÑ °Í°ú °°½À´Ï´Ù. ¿ÏÀüÈ÷ »ý·«Çϸé, ±âº»Àº ¸ðµç Á¢±ÙÀ» °øÀ¯ÇÏ´Â °ÍÀÔ´Ï´Ù. | |
0 | Flags°¡ ¼ýÄ¡À̸é, °øÀ¯ ¸ðµå Ç÷¡±×°¡ ¾øÀ» °æ¿ì ÆÄÀÏÀÌ Àá±é´Ï´Ù. | |
0x100 | read Á¢±ÙÀ» °øÀ¯ÇÕ´Ï´Ù. | |
0x200 | write Á¢±ÙÀ» °øÀ¯ÇÕ´Ï´Ù. | |
0x400 | delete Á¢±ÙÀ» °øÀ¯ÇÕ´Ï´Ù. | |
ÁÙ ³¡(End of line (EOL)) ¿É¼Ç | ||
`n | 4 | ÀÐÀ» ¶§ `r`n À» `n À¸·Î ±³Ã¼ÇÕ´Ï´Ù. ±×¸®°í ¾µ ¶§ `n À» `r`n À¸·Î ±³Ã¼ÇÕ´Ï´Ù. |
`r | 8 | ÀÐÀ» ¶§ ³ªÈ¦·Î `r À» `n À¸·Î ±³Ã¼ÇÕ´Ï´Ù. |
ÆÄÀÏÀÌ ¼º°øÀûÀ¸·Î ¿¸®¸é, ¹Ýȯ °ªÀº ÆÄÀÏ °´Ã¼ÀÔ´Ï´Ù.
ÇÔ¼ö°¡ ½ÇÆÐÇϸé, ¹Ýȯ °ªÀº 0ÀÌ°í [in AHK_L 54+] A_LastError´Â ¿¡·¯ Äڵ尡 ´ã±é´Ï´Ù.
ÇÔ¼ö°¡ ¼º°øÇß´ÂÁö Á¡°ËÇÏ·Á¸é if file
¶Ç´Â IsObject(file)
¸¦ »ç¿ëÇϽʽÿÀ.
UTF-8 ¶Ç´Â UTF-16 ÆÄÀÏÀÌ »ý¼ºµÉ ¶§, ¹ÙÀÌÆ® ¼ø¼ Ç¥½ÄÀÌ ÆÄÀÏ¿¡ ¾º¿©Áý´Ï´Ù. ´Ü, Encoding (¶Ç´Â EncodingÀ» »ý·«Çϸé A_FileEncoding)¿¡ "UTF-8-RAW" ¶Ç´Â "UTF-16-RAW"ÀÌ ´ã°Ü ÀÖ´Â °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.
UTF-8 ¶Ç´Â UTF-16 ¹ÙÀÌÆ® ¼ø¼ Ç¥½Ä(byte order mark (BOM))À» ´ã°í ÀÖ´Â ÆÄÀÏÀÌ Àбâ Á¢±ÙÀ» À§ÇØ ¿¸± ¶§, BOMÀº ÆÄÀÏ Æ÷ÀÎÅ͸¦ ±× ´ÙÀ½À¸·Î À̵¿Çؼ Ãâ·ÂÀ¸·ÎºÎÅÍ Á¦¿ÜµË´Ï´Ù. ±×·¯¹Ç·Î, File.Position
Àº ÆÄÀÏÀ» ¿°í ³ÈÄ Áï½Ã 3 ¶Ç´Â 2¸¦ º¸°íÇÕ´Ï´Ù.
FileEncoding, File Object, FileRead
; ¿¹Á¦: ´ÙÀ½ ½ºÅ©¸³Æ®´Â ÅؽºÆ®¸¦ ÆÄÀÏ¿¡ ¾´ ´ÙÀ½ ´Ù½Ã ¸Þ¸ð¸®·Î ÀÐ¾î µéÀÔ´Ï´Ù. ; ´ÙÀ½ DllCall-¿¹Á¦¿Í ±â´ÉÀÌ °°½À´Ï´Ù. FileSelectFile, FileName, S16,, Create a new file: if (FileName = "") return file := FileOpen(FileName, "w") if !IsObject(file) { MsgBox Can't open "%FileName%" for writing. return } TestString := "This is a test string.`r`n" ; ÆÄÀÏÀ» ÀÌ·± ½ÄÀ¸·Î ¾µ ¶§, »õ ÁÙÀ» ½ÃÀÛÇÏ·Á¸é `n ¸»°í `r`nÀ» »ç¿ëÇϽʽÿÀ. file.Write(TestString) file.Close() ; ÀÌÁ¦ ÆÄÀÌÀ» ´Ù ½èÀ¸¹Ç·Î, ´Ù½Ã ¸Þ¸ð¸®·Î ±× ³»¿ëÀ» ÀÐ¾î µéÀÔ´Ï´Ù. file := FileOpen(FileName, "r-d") ; ÆÄÀÏÀ» ÀнÀ´Ï´Ù ("r"), Áö¿ì±â ("-d")¸¸ »©°í ¸ðµç Á¢±ÙÀ» °øÀ¯ÇÕ´Ï´Ù. if !IsObject(file) { MsgBox Can't open "%FileName%" for reading. return } CharsToRead := StrLen(TestString) TestString := file.Read(CharsToRead) file.Close() MsgBox The following string was read from the file: %TestString%
; Àбâ Àü¿ë ¸ðµå·Î ½ºÅ©¸³Æ®¸¦ ¿±´Ï´Ù. ±×¸®°í ±×ÀÇ Ã¹ ÁÙÀ» ÀнÀ´Ï´Ù: file := FileOpen(A_ScriptFullPath, "r") MsgBox % file.ReadLine() ; ´ÙÀ½ µ¥¸ð¸¦ º¸¿©ÁÖ±â À§ÇØ ÄÜ¼Ö Ã¢À» ¿±´Ï´Ù: DllCall("AllocConsole") ; ¾îÇø®ÄÉÀ̼ÇÀÇ stdin/stdout ½ºÆ®¸²À» »õÁÙ-º¯È¯ ¸ðµå·Î ¿±´Ï´Ù. stdin := FileOpen("*", "r `n") ; Requires v1.1.17+ stdout := FileOpen("*", "w `n") ; ¿¹Àü ¹öÀü¿¡´Â ´ÙÀ½À» »ç¿ëÇÕ´Ï´Ù: ; stdin := FileOpen(DllCall("GetStdHandle", "int", -10, "ptr"), "h `n") ; stdout := FileOpen(DllCall("GetStdHandle", "int", -11, "ptr"), "h `n") stdout.Write("Enter your query.`n\> ") stdout.Read(0) ; ¾²±â ¹öÆÛ¸¦ ºñ¿ó´Ï´Ù. query := RTrim(stdin.ReadLine(), "`n") stdout.WriteLine("Your query was '" query "'. Have a nice day.") stdout.Read(0) ; Àб⠹öÆÛ¸¦ ºñ¿ó´Ï´Ù. Sleep 5000