0

テキストをiniファイルに書き込む方法を知りたいです。ファイルの読み込みはすでに行われています。今、私はファイルへの書き込み方法を知る必要があります。

INI ファイルにある場合は、次のようになります。

[H83052_md7]
Description=H83048 processor mode 7
BootFile=kernel_52.md7
Extension=a20

ファイルからどのように読み取るかを知りたい場合は、ソース コードを尋ねてください。これを行う方法がわかりませんでした。

私は次のように書きます。

namespace Flashloader

{ class Controllerlist : List<Controller> { public Controllerlist FromIniFile() { StringList input = new StringList().FromFile("Controllers.ini");

        Controller controller = null;

        foreach (var item in input)
        {
            String line = item.Trim();

            if (line.StartsWith("[") && line.EndsWith("]"))
            {
                String name = line.Substring(1, line.Length - 2);

                controller = new Controller(name);
                Add(controller);
            }
            else if (controller != null)
            {
                int index = line.IndexOf('=');
                if (index < 0)
                    continue;

                String key = line.Substring(0, index).Trim();
                String value = line.Substring(index + 1).Trim();

                if (Utils.EqualsIgnoreCase(key, "Description"))
                    controller.Description = value;
                else if (Utils.EqualsIgnoreCase(key, "Bootfile"))
                    controller.Bootfile = value;
                else if (Utils.EqualsIgnoreCase(key, "Extension"))
                    controller.Extension = value;
            }
        }
        return this;
    }

    public Controller FindByName(String name)
    {
        foreach (var item in this)
            if (Utils.EqualsIgnoreCase(item.Name, name))
                return item;
        return null;
    }
}

}

4

2 に答える 2

2

このクラスを試してください:

public class IniFile
  {
    public string path;

    [DllImport("kernel32")]
    private static extern long WritePrivateProfileString(string section,
      string key,string val,string filePath);

    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section,
      string key,string def, StringBuilder retVal,
      int size,string filePath);

    public IniFile(string INIPath)
    {
      path = INIPath;
    }

    public void IniWriteValue(string Section,string Key,string Value)
    {
      WritePrivateProfileString(Section,Key,Value,this.path);
    }

    public string IniReadValue(string Section,string Key)
    {
      StringBuilder temp = new StringBuilder(255);
      int i = GetPrivateProfileString(Section,Key,"",temp,255, this.path);
      return temp.ToString();
    }
  }
于 2013-06-18T06:31:28.590 に答える