Comment detail

設定ファイルから値を取得 (Nested Flatten)
今更ながらの、ini file 形式で、
キーと値は、ファイルに一つだけなのか、そうでないのかよくわかりませんでしたので、特に全部読み出すような処理はしていません。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.IO;
using System.Text;
using System.Runtime.InteropServices;

class IniFileHandler {
  [DllImport("KERNEL32.DLL")]
  public static extern uint
    GetPrivateProfileString(string lpAppName,
    string lpKeyName, string lpDefault,
    StringBuilder lpReturnedString, uint nSize,
    string lpFileName);

  [DllImport("KERNEL32.DLL",
      EntryPoint="GetPrivateProfileStringA")]
  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);
}

public class Sample {
  static void Main() {

    // キーと値を書き加える
    IniFileHandler.WritePrivateProfileString("Sample1", "ITEM_NAME", "りんご", @".\ShowPrice.ini");
    IniFileHandler.WritePrivateProfileString("Sample1", "ITEM_COST", "200",    @".\ShowPrice.ini");
    IniFileHandler.WritePrivateProfileString("Sample2", "ITEM_NAME", "みかん", @".\ShowPrice.ini");
    IniFileHandler.WritePrivateProfileString("Sample2", "ITEM_COST", "100",    @".\ShowPrice.ini");

    StringBuilder name = new StringBuilder(1024);
    uint cost = 0;
   
    IniFileHandler.GetPrivateProfileString("Sample1", "ITEM_NAME", "", name, (uint)name.Capacity, @".\ShowPrice.ini");
    cost = IniFileHandler.GetPrivateProfileInt("Sample1", "ITEM_COST", 0, @".\ShowPrice.ini");
    Console.WriteLine("「{0}」は{1}円(税込み)", name, cost*1.05);

    IniFileHandler.GetPrivateProfileString("Sample2", "ITEM_NAME", "", name, (uint)name.Capacity, @".\ShowPrice.ini");
    cost = IniFileHandler.GetPrivateProfileInt("Sample2", "ITEM_COST", 0, @".\ShowPrice.ini");
    Console.WriteLine("「{0}」は{1}円(税込み)", name, cost*1.05);

  }
}

Index

Feed

Other

Link

Pathtraq

loading...