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)
     
  • 相关阅读:
    Python staticmethod
    pandas通过字典生成dataframe
    关于series的统计
    python的*args与**kwargs
    python global
    matplotlib画子图时设置总标题
    matplotlib两种画散点图的方式
    idea下web工程的编译和输出设置
    Vue&webpack入门实践
    《图解设计模式》读书笔记6-1 VISITOR模式
  • 原文地址:https://www.cnblogs.com/qiuxiangmuyu/p/5826065.html
Copyright © 2011-2022 走看看