• 利用GetPrivateProfileString读取ini文件的字段


    //INIClass读取类
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    using System.IO;
    using UnityEngine;
     
    namespace cReadConfigFile
    {
        public class INIClass
        {
            public string inipath;
            [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);
            /// <summary> 
            /// 构造方法 
            /// </summary> 
            /// <param name="INIPath">文件路径</param>
            public INIClass(string INIPath)
            {
                inipath = INIPath;
            }
            /// <summary> 
            /// 写入INI文件 
            /// </summary> 
            /// <param name="Section">项目名称(如 [TypeName] )</param> 
            /// <param name="Key">键</param> 
            /// <param name="Value">值</param> 
            public void IniWriteValue(string Section, string Key, string Value)
            {
                WritePrivateProfileString(Section, Key, Value, this.inipath);
            }
            /// <summary> 
            /// 读出INI文件 
            /// </summary> 
            /// <param name="Section">项目名称(如 [TypeName] )</param> 
            /// <param name="Key">键</param> 
            public string IniReadValue(string Section, string Key)
            {
                StringBuilder temp = new StringBuilder(500);
     
                int i = GetPrivateProfileString(Section, Key, "100", temp, 500, this.inipath);
                return temp.ToString();
            }
            /// <summary> 
            /// 验证文件是否存在 
            /// </summary> 
            /// <returns>布尔值</returns> 
            public bool ExistINIFile()
            {
                return File.Exists(inipath);
            }
     
        /// <summary>获得相应文件名所有名称
        /// 
        /// </summary>
        /// <param name="srcPath">目录</param>
        /// <param name="sFileName">对应文件</param>
        /// <returns></returns>
        /// <remarks></remarks>
            public List<string> fFileList(
                string srcPath)
            {
                List<string> fList = new List<string>();
     
                // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                string[] fileList = Directory.GetFiles(srcPath);
     
                //'添加相同的文件
                foreach (string sItem in fileList)
                {
                    if ("*.jpg *.bmp *.gif".IndexOf(sItem.Substring(sItem.Length-3,3)) > 0)
                    {
                        fList.Add(sItem);
                    }
                    
                }
     
                return fList;
     
            }
        } 
    }
     
    //应用实例
       public Text tx;
        INIClass iniCls;
       void Start () 
        {
            iniCls = new INIClass(Application.dataPath+"/config.ini");
            tx.text = iniCls.IniReadValue("Net", "port");
           tx.text = iniCls.IniReadValue("Net", "LaunchID");
    }
    //ini文件的格式如下
    [Net]
    port=10006
    LaunchID=Launch1
    应用的时候不要加方括号[]
    port是key 
    10006是value
  • 相关阅读:
    Android Studio 快捷键、Debug的使用
    android 控件获取 获取焦点
    jquery里面获取div区块的宽度与高度
    C# ASP.NET MVC 配置允许跨域访问
    分页跳转计算公式
    在vue-cli3 中import引入一个没有export default{}的js文件
    vue中引入css文件
    Vue 导入文件import、路径@和.的区别
    npm 如何查看一个包的版本信息?
    Chrome浏览器常用键盘快捷键介绍
  • 原文地址:https://www.cnblogs.com/backlighting/p/5061549.html
Copyright © 2020-2023  润新知