欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用kernel32.dll讀寫INI文件的案例詳解

 更新時間:2023年05月19日 10:53:18   作者:叫我少年  
INI就是擴展名為"INI"的文件,其實他本身是個文本文件,可以用記事本打開,主要存放的是用戶所做的選擇或系統(tǒng)的各種參數(shù),這篇文章主要介紹了C#使用kernel32.dll讀寫INI文件的方法,需要的朋友可以參考下

INI文件是一種常見的配置文件格式,通常用于存儲應用程序的配置信息。在C#中,我們可以使用Kernel32庫來讀寫INI文件

引用

//寫入
[DllImport("kernel32.dll")]
private static extern long WritePrivateProfileString(string section, string key, string val, string    filePath);
//讀取
[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileString(string section, string key, string def,  StringBuilder retVal, int size, string INIPath);

WritePrivateProfileString

向INI文件中寫入數(shù)據(jù):

  • section:INI文件中的一個段落名稱。
  • key:INI文件中的一個鍵名稱。
  • val:要寫入的值。
  • filePath:INI文件的完整路徑。

GetPrivateProfileString

從INI文件中讀取數(shù)據(jù):

  • section:INI文件中的一個段落名稱。
  • key:INI文件中的一個鍵名稱。
  • def:如果沒有找到指定的鍵,則返回的默認值。
  • retVal:用于存儲讀取到的值的StringBuilder對象。
  • size:retVal對象的大小。
  • INIPath:INI文件的完整路徑。

寫入

public void IniWriteValue(string Section, string Key, string Value)
  {
   string inipath = ".CONFIG.INI";
   WritePrivateProfileString(Section, Key, Value, inipath);
  }
public void IniWriteValues() {
   IniWriteValue("CONFIG", "Comport", ComPort);
  }

讀取

 StringBuilder temp = new StringBuilder(500);
   GetPrivateProfileString("CONFIG", "Player", "", temp, 500, ".\CONFIG.INI");
   Player = temp.ToString();

封裝示例

使用了DllImport來調用Windows API函數(shù),用于讀取和寫入INI文件。雖然這段代碼可以正常工作,但是它存在一些問題:

  • 可讀性差:代碼中的參數(shù)名稱和變量名不夠清晰,難以理解。
  • 可維護性差:如果我們需要在代碼中多次使用這些函數(shù),我們需要在每個使用它們的地方都寫一遍DllImport聲明,這樣會導致代碼重復和維護困難。

為了解決這些問題,可以對代碼進行重構??梢詫llImport聲明封裝到一個類中,這樣就提高代碼的可讀性和可維護性。同時,為函數(shù)添加更具描述性的參數(shù)名稱和變量名,這樣可以使代碼更加易于理解。

重構代碼:

class IniFile
{   
    // 引入kernel32.dll庫,用于寫入INI文件
    [DllImport("kernel32.dll")]
    private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
    // 引入kernel32.dll庫,用于讀取INI文件
    [DllImport("kernel32.dll")]
    private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string INIPath);
    // INI文件路徑
    private string _filePath;
    // 構造函數(shù),初始化INI文件路徑
    public IniFile(string filePath)
    {
        _filePath = filePath;
    }
    // 寫入INI文件
    public void WriteValue(string section, string key, string value)
    {
        WritePrivateProfileString(section, key, value, _filePath);
    }
    // 寫入INI文件
    public string ReadValue(string section, string key, string defaultValue = "")
    {
        StringBuilder sb = new StringBuilder(255);
        GetPrivateProfileString(section, key, defaultValue, sb, 255, _filePath);
        return sb.ToString();
    }
}

我們將DllImport聲明封裝到了一個名為IniFile的類中。這個類包含了兩個函數(shù):WriteValue和ReadValue,用于寫入和讀取INI文件中的值。我們還添加了一個構造函數(shù),用于初始化INI文件的路徑。

現(xiàn)在,我們可以在代碼中使用IniFile類來讀取和寫入INI文件中的值。這樣可以提高代碼的可讀性和可維護性,同時也可以避免代碼重復。

到此這篇關于C#使用kernel32.dll讀寫INI文件的文章就介紹到這了,更多相關c# kernel32.dll讀寫INI文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#拷貝文件簡單實現(xiàn)方法

    C#拷貝文件簡單實現(xiàn)方法

    這篇文章主要介紹了C#拷貝文件簡單實現(xiàn)方法,主要分析了FileInfo類中CopyTo方法針對文件復制的操作技巧,非常簡單實用,需要的朋友可以參考下
    2015-04-04
  • C#處理Paint事件的方法

    C#處理Paint事件的方法

    這篇文章主要介紹了C#處理Paint事件的方法,實例分析了C#使用Paint進行圖形繪制的技巧,需要的朋友可以參考下
    2015-06-06
  • C#實現(xiàn)的文件壓縮和解壓縮類

    C#實現(xiàn)的文件壓縮和解壓縮類

    這篇文章主要介紹了C#實現(xiàn)的文件壓縮和解壓縮類,實例分析了C#針對文件壓縮與解壓縮的常用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • unity3d實現(xiàn)七天簽到功能

    unity3d實現(xiàn)七天簽到功能

    這篇文章主要為大家詳細介紹了unity3d實現(xiàn)七天簽到功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Unity3D實現(xiàn)攝像機鏡頭移動并限制角度

    Unity3D實現(xiàn)攝像機鏡頭移動并限制角度

    這篇文章主要為大家詳細介紹了Unity3D實現(xiàn)攝像機鏡頭移動并限制角度,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 聊聊C# 中HashTable與Dictionary的區(qū)別說明

    聊聊C# 中HashTable與Dictionary的區(qū)別說明

    這篇文章主要介紹了聊聊C# 中HashTable與Dictionary的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • c#實現(xiàn)在圖上畫漢字

    c#實現(xiàn)在圖上畫漢字

    這篇文章主要介紹了c#實現(xiàn)在圖上畫漢字方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • C#基礎入門之算法:交換

    C#基礎入門之算法:交換

    本文主要介紹了C#中算法:交換的相關知識,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 如何在C#9 中使用static匿名函數(shù)

    如何在C#9 中使用static匿名函數(shù)

    這篇文章主要介紹了如何在C#9中使用static匿名函數(shù),幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#中控制遠程計算機的服務的方法

    C#中控制遠程計算機的服務的方法

    C#中控制遠程計算機的服務的方法...
    2007-04-04

最新評論