zoukankan      html  css  js  c++  java
  • 利用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
  • 相关阅读:
    UVA 10480 Sabotage (最大流最小割)
    bzoj2002 [Hnoi2010]Bounce 弹飞绵羊 (分块)
    poj3580 SuperMemo (Splay+区间内向一个方向移动)
    bzoj1500: [NOI2005]维修数列 (Splay+变态题)
    hdu3436 Queue-jumpers(Splay)
    hdu4710 Balls Rearrangement(数学公式+取模)
    hdu1890 Robotic Sort (splay+区间翻转单点更新)
    zoj2112 Dynamic Rankings (主席树 || 树套树)
    poj3581 Sequence (后缀数组)
    notepa++ Emmet的安装方法
  • 原文地址:https://www.cnblogs.com/backlighting/p/5061549.html
Copyright © 2011-2022 走看看