zoukankan      html  css  js  c++  java
  • 【Unity3D】用C#读取INI配置文件

    由于在C#并没有提供专门读取INI文件的API,所以需要间接调用C++的API来进行读取。

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
    using System.IO;  
      
    namespace 读写ini文件  
    {  
        public class Ini  
        {  
            // 声明INI文件的写操作函数 WritePrivateProfileString()  
      
            [System.Runtime.InteropServices.DllImport("kernel32")]  
      
            private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);  
      
            // 声明INI文件的读操作函数 GetPrivateProfileString()  
      
            [System.Runtime.InteropServices.DllImport("kernel32")]  
      
            private static extern int GetPrivateProfileString(string section, string key, string def, System.Text.StringBuilder retVal, int size, string filePath);  
      
      
            private string sPath = null;  
            public Ini(string path)  
            {  
                this.sPath = path;  
            }  
      
            public void Writue(string section, string key, string value)  
            {  
      
                // section=配置节,key=键名,value=键值,path=路径  
      
                WritePrivateProfileString(section, key, value, sPath);  
      
            }  
            public string ReadValue(string section, string key)  
            {  
      
                // 每次从ini中读取多少字节  
      
                System.Text.StringBuilder temp = new System.Text.StringBuilder(255);  
      
                // section=配置节,key=键名,temp=上面,path=路径  
      
                GetPrivateProfileString(section, key, "", temp, 255, sPath);  
      
                return temp.ToString();  
      
            }  
      
       
      
      
        }  
        class Program  
        {  
            static void Main(string[] args)  
            {  
                string Current;  
      
                Current = Directory.GetCurrentDirectory();//获取当前根目录  
                Console.WriteLine("Current directory {0}", Current);  
                // 写入ini  
                Ini ini=new Ini(Current+"/config.ini");  
                ini.Writue("Setting","key1","hello word!");  
                ini.Writue("Setting","key2","hello ini!");  
                ini.Writue("SettingImg", "Path", "IMG.Path");  
                // 读取ini  
                string stemp = ini.ReadValue("Setting","key2");  
                Console.WriteLine(stemp);  
      
       
      
                Console.ReadKey();  
            }  
             
        }  
    }  

        想要删除INI中的section的话,可以这样调用:

    WritePrivateProfileString(section,null,null,sPath)

    想要删除INI中的key的话,可以这样调用:
    WritePrivateProfileString(section,key,null,sPath)
     
  • 相关阅读:
    web服务器-Apache
    nginx优化
    nginx下载限速
    nginx-URL重写
    HDU 5358 First One 求和(序列求和,优化)
    HDU 5360 Hiking 登山 (优先队列,排序)
    HDU 5353 Average 糖果分配(模拟,图)
    UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
    HDU 5348 MZL's endless loop 给边定向(欧拉回路,最大流)
    HDU 5344 MZL's xor (水题)
  • 原文地址:https://www.cnblogs.com/qiuxiangmuyu/p/5826065.html
Copyright © 2011-2022 走看看