C#でINIファイルの読み書き方法は何ですか?

C#では、INIファイルを読み書きするためにSystem.IO名前空間のStreamReaderとStreamWriterクラスを使うことができます。以下は簡単なサンプルコードです:

using System;
using System.IO;

public class IniFile
{
    private string filePath;

    public IniFile(string filePath)
    {
        this.filePath = filePath;
    }

    public string ReadValue(string section, string key)
    {
        string value = "";
        using (StreamReader sr = new StreamReader(filePath))
        {
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                if (line.StartsWith($"[{section}]"))
                {
                    while ((line = sr.ReadLine()) != null)
                    {
                        if (line.StartsWith(key))
                        {
                            value = line.Split('=')[1].Trim();
                            break;
                        }
                    }
                    break;
                }
            }
        }
        return value;
    }

    public void WriteValue(string section, string key, string value)
    {
        bool sectionExists = false;
        string tempFile = Path.GetTempFileName();
        using (StreamReader sr = new StreamReader(filePath))
        using (StreamWriter sw = new StreamWriter(tempFile))
        {
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                if (line.StartsWith($"[{section}]"))
                {
                    sectionExists = true;
                }
                sw.WriteLine(line);
            }

            if (!sectionExists)
            {
                sw.WriteLine($"[{section}]");
            }

            sw.WriteLine($"{key}={value}");
        }

        File.Delete(filePath);
        File.Move(tempFile, filePath);
    }
}

// 使用示例
IniFile ini = new IniFile("example.ini");
ini.WriteValue("Section1", "Key1", "Value1");
string value = ini.ReadValue("Section1", "Key1");
Console.WriteLine(value);

上記の例では、IniFileクラスはINIファイルの読み取りと書き込みを行うメソッドをカプセル化しています。ReadValueメソッドを使用すると、指定されたセクションとキーに対応する値を読み取ることができ、WriteValueメソッドを使用すると、指定されたセクションとキーに対応する値を書き込むことができます。

コメントを残す 0

Your email address will not be published. Required fields are marked *