[C#]iniファイル読み込みサンプル

Win32APIを使う。

宣言側

 

//NativeMethods.cs
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace IniFileReader
{
    internal static class NativeMethods
    {
        // INIファイルを読み取るWin32API宣言
        [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileStringW", CharSet = CharSet.Unicode, SetLastError = true)]
        internal static extern uint GetPrivateProfileString(string appName, string keyName, string defaultValue, StringBuilder returnedString, uint size, string fileName);
    }
}

呼び出し側

//IniFileReader.cs
using System;
using System.Text;
namespace IniFileReader
{
    public class IniFileReader
    {
        public IniFileReader()
        {
            int capacitySize = 1024;
            StringBuilder stringBuilder = new StringBuilder(capacitySize);
            uint ret = NativeMethods.GetPrivateProfileString(Constants.IniFileSection, Constants.IniFileParameter, "" , stringBuilder, Convert.ToUInt32(stringBuilder.Capacity), Constants.IniFilePath);
            if (ret > 0)
            {
                Value = stringBuilder.ToString();
            }
            else
            {
                Console.WriteLine("INIファイル読み取り失敗: " + ret.ToString());
            }
        }

        public string Value { get; }
    }
}

コメント

タイトルとURLをコピーしました