我的ini檔案,路徑是在根目錄下:
[注冊碼]
sn = 123456789
[設備]
小米3 = 123456789
小米5 = 987654321
類檔案內容
namespace myfun
{
class file
{
// 寫入INI的宣告
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
// 讀取INI的宣告
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
// 申明建構式內的變數
public string ini_path;
// 建構式
public file()
{
this.ini_path = @"組態檔.ini";
}
// 讀取ini檔案內容
public string read(string section, string key)
{
StringBuilder msg = new StringBuilder(512);
GetPrivateProfileString(section, key, "Null", msg, 512, this.ini_path);
return msg.ToString();
}
}
}
以下是在winform里面的一個按鈕方法
private void button2_Click(object sender, EventArgs e)
{
myfun.file ini = new myfun.file();
Console.WriteLine(ini.read("設備", "小米3"));
}
弄了老半天了,不知道哪里錯了,但是在網上看到各種代碼都是這么寫的,我很郁悶現在
uj5u.com熱心網友回復:
只要執行,就只是回傳“Null”,總是讀不到我要的值uj5u.com熱心網友回復:
這個方法你還沒有了解清楚,確定GetPrivateProfileString這個函數參數例子,你才能成功獲取uj5u.com熱心網友回復:
不支持中文,你把key-小米3換成英文應該就可以了uj5u.com熱心網友回復:
如果要讀取中文,要設定 Unicode,UTF8 的編碼方式,否則無法支持uj5u.com熱心網友回復:
DllImport里邊設一下charsetuj5u.com熱心網友回復:
且不看你的代碼,我建議啊,不如直接用json序列化反序列化來的直接,再不濟用.net自帶的配置也行,何必要這么繞彎路呢.uj5u.com熱心網友回復:
this.ini_path = @"組態檔.ini";你的INI檔案只給檔案名,不給目錄名的嗎?至少前面加個AppDomain.CurrentDomain.BaseDirectory也行啊。
uj5u.com熱心網友回復:
我修改了我的組態檔,新建了一個資料,如下:
[aaa]
bbb = 123
但是依然不能讀取,求教
uj5u.com熱心網友回復:
我現在改成純英文的都讀不出了,不知道哪里錯了
uj5u.com熱心網友回復:
樓上幾個綜合一下就可以了組態檔另存為Unicode編碼
代碼更改
[DllImport("kernel32",CharSet =CharSet.Unicode)]
this.ini_path = AppDomain.CurrentDomain.BaseDirectory + "組態檔.ini";
uj5u.com熱心網友回復:
根目錄好像可以這么直接寫吧,我測驗了加入你說的內容,也是讀不到我要的內容哦
uj5u.com熱心網友回復:

抱歉,給各位添麻煩了,我發現問題了,是我的檔案路徑書寫錯誤,我的天啊,哎
this.ini_path = @"組態檔.ini";
改成如下:
this.ini_path = @".\組態檔.ini";
uj5u.com熱心網友回復:
為何這個年代了還用INI..JSON就是很容易 嗎uj5u.com熱心網友回復:
因為這個組態檔要方便給客戶閱讀和修改,其他型別的組態檔怕客戶不會看
uj5u.com熱心網友回復:
微軟自己都用 xml了,你還用iniuj5u.com熱心網友回復:
其實ini檔案也是文本檔案,你讀后用正則去獲取位置都可以,何必用ini的函式uj5u.com熱心網友回復:
報錯提示看不出你檔案路徑不對嗎?
uj5u.com熱心網友回復:
完全沒有報錯,以至于我一直以為這么寫是對的
uj5u.com熱心網友回復:
json和xml可讀性很好的啊,你多慮了.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/239836.html
標籤:C#
上一篇:vb6.0桌面應用
