こんにちは。明月です。
この投稿はC#でini環境ファイルを使う方法に関する説明です。
C#で一般的な環境ファイルはApp.configファイルのXMLファイルです。
link - [C#] 環境設定ファイルを扱う方法(System.Configuration)
iniファイルはC++でよく使う環境ファイルの構造です。
セッションがあり、キーでデータを取得する構造です。でもC#もC++ライブラリを使うことができるのでiniファイルを読み取りや書き込みができます。
Copy! [Source view] Program.csusing System; using System.IO; using System.Text; using System.Runtime.InteropServices; namespace Example { public static class ConfigSystem { // CのDLLライブラリのImport [DllImport("kernel32")] // 関数のパラメータはsection名、キー名、値、ファイルパス private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); // CのDLLライブラリのImport [DllImport("kernel32")] // 関数のパラメータはsection名、キー名、デフォルト値(sectionやキー、値がない場合、設定する値)、返却値(リターン値)、バッファサイズ、ファイルパス private static extern int GetPrivateProfileString(string section, string key, string def, byte[] retVal, int size, string filePath); // iniファイルを作成する関数 public static void WriteConfig(string file, string section, string key, string val) { WritePrivateProfileString(section, key, val, GetFile(file)); } // iniファイルから値を取得する関数 public static string ReadConfig(string file, string section, string key) { // C# const char*はbyte配列に表現できる。 byte[] temp = new byte[1024]; // 値を取得 int ret = GetPrivateProfileString(section, key, null, temp, temp.Length, GetFile(file)); // iniは基本テキストファイル、ドキュメントフォーマットによるが、基本sjisだ。 return Encoding.Default.GetString(temp, 0, Array.IndexOf(temp, (byte)0)); } // iniファイルパスを取得関数 private static string GetFile(string file) { // 事項するファイルのパス return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file + ".ini"); } } class Program { //実行関数 static void Main(string[] args) { // config.iniファイルに「SectionTest」セッションで「data」キーで「日本語」の値を格納する。 ConfigSystem.WriteConfig("config", "SectionTest", "data", "日本語"); // config.iniファイルに「SectionTest」セッションで「data」キーの値を取得する。 Console.WriteLine(ConfigSystem.ReadConfig("config", "SectionTest", "data")); Console.WriteLine("Press any key..."); Console.ReadKey(); } } }
WritePrivateProfileStringとGetPrivateProfileStringはC#のライブラリではなく、C++のライブラリの「kernel32」の関数です。
実行関数でiniファイルを書き込んで読み取るので同然「日本語」という結果が出ます。
config.iniファイルを確認しましょう。
config.iniファイル中で[SectionTest]のdataのキーで「日本語」という値があります。
iniファイルはプログラムだけで操作することではなく、直接にセッションやキー、値を設定すると上のGetPrivateProfileStringの関数で読み込むのが可能です。
ここまでC#でini環境ファイルを使う方法に関する説明でした。
ご不明なところや間違いところがあればコメントしてください。
「Devlopment note / C#」の他投稿
- [C#] Geckoライブラリを利用してウェブスクレイピングする方法2020/05/05 00:52:26
- [C#] PDFを作成する方法(iTextSharp)2020/05/03 10:22:40
- [C#] シリアライズ(Serialization)をする方法2020/04/30 19:32:04
- [C#] dynamicタイプの動的パラメータ-DynamicObject(WinFormでASP.MVCのViewBagオブジェクトを使用する方法)2020/04/29 22:41:32
- [C#] Stringの補間式(interpolation)2020/04/27 20:39:57
- [C#] Newtonsoft.JSONライブラリを利用してJsonデータ構造を扱う方法2020/04/23 20:19:53
- [C#] EMailを送信する方法(System.Net.Mail)2020/04/22 19:00:42
- [C#] ini環境ファイルを使う方法2020/04/22 00:09:39
- [C#] 環境設定ファイルを扱う方法(System.Configuration)2020/04/20 19:37:57
- [C#] Reflectionを利用してクラス複製する方法2020/04/17 00:34:33
- [C#] XMLをXPathを利用してデータを取得する方法2020/04/16 00:47:17
- [C#] NSoupライブラリを利用してXMLとHTMLをパーシングする方法2020/04/14 19:34:15
- [C#] 日付フォーマット2020/04/09 20:53:20
- [C#] ログライブラリ(log4net)を設定する方法2020/04/08 13:04:22
- [C#] Zipの圧縮ファイルを解凍するコードを作成する方法2020/04/07 11:17:44
最新投稿
- check2024/04/10 19:03:53
- [Java] 64.Spring bootとReactを連結する方法(Buildする方法)2022/03/25 21:02:18
- [Javascript] Node.jsをインストールしてReactを使う方法2022/03/23 18:01:34
- [Java] 63. Spring bootでcronスケジューラとComponentアノテーション2022/03/16 18:57:30
- [Java] 62. Spring bootでWeb-Filterを設定する方法(Spring Security)2022/03/15 22:16:37
- [Java] JWT(Json Web Token)を発行、確認する方法2022/03/14 19:12:58
- [Java] 61. Spring bootでRedisデータベースを利用してセッションクラスタリング設定する方法2022/03/01 18:20:52
- [Java] 60. Spring bootでApacheの連結とロードバランシングを設定する方法2022/02/28 18:45:48
- [Java] 59. Spring bootのJPAでEntityManagerを使い方2022/02/25 18:27:48
- [Java] 58. EclipseでSpring bootのJPAを設定する方法2022/02/23 18:11:10
- [Java] 57. EclipseでSpring bootを設定する方法2022/02/22 19:04:49
- [Python] Redisデータベースに接続して使い方2022/02/21 18:23:49
- [Java] Redisデータベースを接続して使い方(Jedisライブラリ)2022/02/16 18:13:17
- [C#] Redisのデータベースを接続して使い方2022/02/15 18:46:09
- [CentOS] Redisデータベースをインストールする方法とコマンドを使い方2022/02/14 18:33:07