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)
     
  • 相关阅读:
    第二次作业——评分!
    第一次点评!
    神经网络测试:利用分块patch输入的弊端
    利用分块进行网络输入测试
    python 用filter求解素数
    英语语法
    git clone 下载出现Time out
    路由转发
    获取用户密码
    后门维持
  • 原文地址:https://www.cnblogs.com/qiuxiangmuyu/p/5826065.html
Copyright © 2011-2022 走看看