{"id":1606,"date":"2015-04-30T16:10:43","date_gmt":"2015-04-30T07:10:43","guid":{"rendered":"http:\/\/ocworld.net\/?p=1606"},"modified":"2024-12-13T15:03:11","modified_gmt":"2024-12-13T06:03:11","slug":"c%ec%97%90%ec%84%9c-ini-%ed%99%98%ea%b2%bd-%ed%8c%8c%ec%9d%bc-%ec%93%b0%eb%8a%94-%eb%b0%a9%eb%b2%95","status":"publish","type":"post","link":"https:\/\/www.ocworld.net\/?p=1606","title":{"rendered":"C#\uc5d0\uc11c ini \ud658\uacbd \ud30c\uc77c \uc4f0\ub294 \ubc29\ubc95"},"content":{"rendered":"<p>ini \ud658\uacbd \ud30c\uc77c\uc744 \uac04\ub2e8\ud558\uac8c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>1. initUtil \uc774\ub77c\ub294 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e0 \ud6c4 ini \uad00\ub828 \uba54\uc18c\ub4dc\ub97c \uad6c\uc131\ud55c\ub2e4.(iniUtil.cs)<\/p>\n<p><span style=\"color: #000000;\">using System;<\/span><br \/><span style=\"color: #000000;\"> using System.Collections.Generic;<\/span><br \/><span style=\"color: #000000;\"> using System.Text;<\/span><br \/><span style=\"color: #000000;\"> using System.IO;<\/span><br \/><span style=\"color: #000000;\"> using System.Runtime.InteropServices;<br \/><\/span><span style=\"color: #000000;\"><br \/>namespace INI{<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0 class iniUtil<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0 {<br \/><\/span><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 private string iniPath;<br \/><\/span><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 public iniUtil(string <strong>path<\/strong>)<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {<br \/><\/span><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 this.iniPath = path;\u00a0 \/\/INI \ud30c\uc77c \uc704\uce58\ub97c \uc0dd\uc131\ud560\ub54c \uc778\uc790\ub85c \ub118\uaca8 \ubc1b\uc74c<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<br \/><\/span><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[DllImport(&#8220;kernel32.dll&#8221;)]<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 private static extern int GetPrivateProfileString(\u00a0\u00a0\u00a0 \/\/ GetIniValue \ub97c \uc704\ud574<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String section,<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String key,<\/span><br \/><span style=\"color: #000000;\"><span id=\"callbacknestniceburytistorycom468934\"><\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String def,<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 StringBuilder retVal,<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int size,<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String filePath);<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [DllImport(&#8220;kernel32.dll&#8221;)]<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 private static extern long WritePrivateProfileString(\u00a0 \/\/ SetIniValue\ub97c \uc704\ud574<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String section,<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String key,<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String val,<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 String filePath);<br \/><\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ INI \uac12\uc744 \uc77d\uc5b4 \uc628\ub2e4. <\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 public String <strong>GetIniValue<\/strong>(String Section, String Key)<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 StringBuilder temp = new StringBuilder(255);<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int i = GetPrivateProfileString(Section, Key, &#8220;&#8221;, temp, 255, iniPath);<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return temp.ToString();<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ INI \uac12\uc744 \uc14b\ud305<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 public void <strong>SetIniValue<\/strong>(String Section, String Key, String Value)<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 WritePrivateProfileString(Section, Key, Value, iniPath);<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<br \/><\/span><span style=\"color: #000000;\">\u00a0\u00a0\u00a0 }<\/span><br \/><span style=\"color: #000000;\"> }<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>2. \ud544\uc694\ud55c \uacf3\uc5d0\uc11c \ub9cc\ub4e4\uc5b4 \ub193\uc558\ub358 iniUtil\uc758 \uac1d\uccb4\ub97c \uc0dd\uc131\ud55c \ud6c4 \uc791\uc131\ud55c\ub2e4.\u00a0<span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/p>\n<p><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>\/\/\ud604\uc7ac \ud504\ub85c\uadf8\ub7a8\uc774 \uc2e4\ud589\ub418\uace0 \uc788\ub294\uc815\ubcf4 \uac00\uc838\uc624\uae30:\u00a0\ub514\ubc84\uae45 \ubaa8\ub4dc\ub77c\uba74 bin\/debug\/\ud504\ub85c\uadf8\ub7a8\uba85.exe<\/strong><\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FileInfo exefileinfo = new FileInfo(Application.ExecutablePath);\u00a0\u00a0\u00a0<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string path = exefileinfo.Directory.FullName.ToString()\u00a0 \/\/\ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589\ub418\uace0 \uc788\ub294\ub370 path \uac00\uc838\uc624\uae30<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string fileName = @&#8221;\\config.ini&#8221;;\u00a0 \/\/\ud30c\uc77c\uba85<br \/><\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0<strong>\u00a0\/\/\ub9cc\uc57d \ud604\uc7ac \uc2e4\ud589 \ub418\ub294 \uacbd\ub85c\uac00\u00a0\uc544\ub2cc \ud2b9\uc815\ud55c \uc704\uce58\ub97c\u00a0\uc6d0\ud55c\ub2e4\uba74 \uc704\uc5d0 \uacfc\uc815 \uc0c1\uad00\uc5c6\uc774 \ubc14\ub85c\u00a0\uacbd\ub85c\uc14b\ud305 \ud574 \uc8fc\uba74 \ub41c\ub2e4.\u00a0<\/strong>(\uc608: c:\\config.ini)\u00a0<\/span><br \/><span style=\"color: #000000;\"> \u00a0\u00a0\u00a0\u00a0\u00a0 string filePath = path+fileName;\u00a0\u00a0 \/\/ini \ud30c\uc77c \uacbd\ub85c\u00a0<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0 iniUtil ini = new iniUtil(filePath);\u00a0\u00a0 \/\/ \ub9cc\ub4e4\uc5b4 \ub193\uc558\ub358 iniUtil \uac1d\uccb4 \uc0dd\uc131(\uc0dd\uc131\uc790 \uc778\uc790\ub85c \ud30c\uc77c\uacbd\ub85c \uc815\ubcf4 \ub118\uaca8\uc90c)<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0 \/*<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"color: #000000;\">\uac12 \uc14b\ud305\ud558\uae30<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\uccab\ubc88\uc9f8 \uc778\uc790: \uc139\uc158\uac12(\ub300\ubd84\ub958\ub85c \uc0dd\uac01\ud558\uba74 \ud3b8\ud568)<br \/> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \ub450\ubc88\uc9f8 \uc778\uc790: \ud0a4\uac12(\uad6c\ubd84\uac12\uc73c\ub85c \uc0dd\uac01)<br \/> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \uc138\ubc88\uc9f8 \uc778\uc790: \uc2e4\uc81c \ub4e4\uc5b4\uac08 \uac12<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0*\/<br \/><\/span><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ini.SetIniValue(&#8220;MSSQL&#8221;, &#8220;serverIP&#8221;, &#8220;\uc11c\ubc84\uc544\uc774\ud53c&#8221;);<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ini.SetIniValue(&#8220;MSSQL&#8221;, &#8220;user&#8221;, &#8220;\uc544\uc774\ub514&#8221;);<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ini.SetIniValue(&#8220;MSSQL&#8221;, &#8220;password&#8221;, &#8220;\ud328\uc2a4\uc6cc\ub4dc&#8221;);<\/span><\/p>\n<p>\u00a0\u00a0\u00a0 \/*\u00a0<br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\uac12 \uac00\uc838\uc640 \uc0ac\uc6a9\ud558\uae30\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\uccab\ubc88\uc9f8 \uc778\uc790: \uc139\uc158\uac12(\ub300\ubd84\ub958\ub85c \uc0dd\uac01\ud558\uba74 \ud3b8\ud568)<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\ub450\ubc88\uc9f8 \uc778\uc790: \ud0a4\uac12(\uad6c\ubd84\uac12\uc73c\ub85c \uc0dd\uac01)<br \/><\/span>\u00a0\u00a0\u00a0 *\/<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string\u00a0serverIP = ini.GetIniValue(&#8220;MSSQL&#8221;, &#8220;serverIP&#8221;);<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0string\u00a0user = ini.GetIniValue(&#8220;MSSQL&#8221;, &#8220;user&#8221;);<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0string\u00a0password = ini.GetIniValue(&#8220;MSSQL&#8221;, &#8220;password&#8221;);<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\">3.\u00a0\uc2e4\uc81c\u00a0config.ini \ud30c\uc77c\uc5d0\ub294\u00a0 \uc544\ub798\ucc98\ub7fc \uc800\uc7a5 \ub41c\ub2e4.<\/span><\/p>\n<p><span style=\"color: #000000;\">[MSSQ] \/\/\uccab\ubc88\uc9f8 \uc778\uc790\ub85c \ub4e4\uc5b4\uc628 \uc139\uc158\uac12(\ub300\ubd84\ub958)<br \/>serverIP=\uc11c\ubc84\uc544\uc774\ud53c<br \/><\/span><span style=\"color: #000000;\">user=\uc544\uc774\ub514<br \/>password=\ud328\uc2a4\uc6cc\ub4dc<\/span><br \/><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/p>\n<p>\ucd9c\ucc98) http:\/\/nicebury.tistory.com\/46<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ini \ud658\uacbd \ud30c\uc77c\uc744 \uac04\ub2e8\ud558\uac8c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf8\ub2e4. &nbsp; 1. initUtil \uc774\ub77c\ub294 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e0 \ud6c4 ini \uad00\ub828 \uba54\uc18c\ub4dc\ub97c \uad6c\uc131\ud55c\ub2e4.(iniUtil.cs) using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Runtime.InteropServices;namespace INI{ \u00a0\u00a0\u00a0 class iniUtil \u00a0\u00a0\u00a0 {\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 private string iniPath;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 public iniUtil(string path) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 this.iniPath = path;\u00a0 \/\/INI \ud30c\uc77c \uc704\uce58\ub97c \uc0dd\uc131\ud560\ub54c \uc778\uc790\ub85c \ub118\uaca8 \ubc1b\uc74c\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[DllImport(&#8220;kernel32.dll&#8221;)] \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 private [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[111,112],"class_list":["post-1606","post","type-post","status-publish","format-standard","hentry","category-info","tag-c","tag-ini-"],"_links":{"self":[{"href":"https:\/\/www.ocworld.net\/index.php?rest_route=\/wp\/v2\/posts\/1606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ocworld.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ocworld.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ocworld.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ocworld.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1606"}],"version-history":[{"count":2,"href":"https:\/\/www.ocworld.net\/index.php?rest_route=\/wp\/v2\/posts\/1606\/revisions"}],"predecessor-version":[{"id":1608,"href":"https:\/\/www.ocworld.net\/index.php?rest_route=\/wp\/v2\/posts\/1606\/revisions\/1608"}],"wp:attachment":[{"href":"https:\/\/www.ocworld.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ocworld.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ocworld.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}