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
  • 相关阅读:
    Win7专业版系统下事件绑定的Command事件不执行
    Win8系统下报错:无法将字符串“*”转换为Length.
    C#创建job计划用于调用存储过程刷新数据
    with语句
    for in语句与for in语句输入顺序问题
    HighCharts日期及数值格式化
    在web.config文件中,增加“type="APP.Modules.CommandModule,CommandModules"”节点会导致awesome font字体图标显示为方框框
    String、StringBuffer与StringBuilder之间区别
    java使用maven创建springmvc web项目
    手机APP下单支付序列图
  • 原文地址:https://www.cnblogs.com/backlighting/p/5061549.html
Copyright © 2011-2022 走看看