HomeC#技術項目 INIファイル

INIファイル

宣言

// ****************************************************************
// インポートするクラス
// ****************************************************************
using System.Runtime.InteropServices;

// ****************************************************************
// Windows API 読み込み
// ****************************************************************
// INIファイル関数
[DllImport("KERNEL32.DLL")]
public static extern uint
  GetPrivateProfileString(string lpAppName,
  string lpKeyName, string lpDefault,
  StringBuilder lpReturnedString, uint nSize,
  string lpFileName);

[DllImport("KERNEL32.DLL",
    EntryPoint = "GetPrivateProfileString")]
public static extern uint
  GetPrivateProfileStringByByteArray(string lpAppName,
  string lpKeyName,
  string lpDefault,
  byte[] lpReturnedString,
  uint nSize,
  string lpFileName);

[DllImport("KERNEL32.DLL")]
public static extern uint
  GetPrivateProfileInt(string lpAppName,
  string lpKeyName, int nDefault, string lpFileName);

[DllImport("KERNEL32.DLL")]
public static extern uint WritePrivateProfileString(
  string lpAppName,
  string lpKeyName,
  string lpString,
  string lpFileName);

書込み

WritePrivateProfileString("セッション名", "キー名", "書込む値", "INIファイルパス");

読込み

// 特定のセッションのキー一覧
byte[] ByteArray = new byte[1024];
uint resultSize = GetPrivateProfileStringByByteArray("セッション名", null, "", ByteArray, (uint)ByteArray.Length, "INIファイルパス");
if (resultSize != 0)
{
    string result = Encoding.Default.GetString(ByteArray, 0, (int)resultSize - 1);
    string[] keys = result.Split('\0');
    foreach (string key in keys)
    {
        Console.WriteLine(key);
    }
}

// 文字列
StringBuilder sb = new StringBuilder(1024);
GetPrivateProfileString("セッション名", "キー名", "既定値", sb, (uint)sb.Capacity, "INIファイルパス");
Console.WriteLine(sb.ToString());

// 数値
Console.WriteLine(GetPrivateProfileInt("セッション名", "キー名", 0, "INIファイルパス"));



ページトップへ

データベース

サーバ

Copyright (C) MadCap. All Rights Reserved.