• 读写INI文件操作类


    详情介绍:http://zh.wikipedia.org/wiki/INI%E6%96%87%E4%BB%B6

    示例:

    下面是一个虚拟的程序,其INI文件有两个小节,前面的小节是用来设置拥有者的信息,而后面的小节是用来设置数据库的位置。前面的注解记载谁最后编辑此文件,而后面的注解记录为何不使用域名而是使用IP地址

    [owner]
    name=John Doe
    organization=Acme Products
     
    [database]
    server=192.0.2.42 ; use IP address in case network name resolution is not working
    port=143
    file = "acme payroll.dat"

    IniHelper 类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace SingleStore.Code
    {
        public class IniHelper
        {
    
    
            // 声明INI文件的写操作函数 WritePrivateProfileString()
            [DllImport("kernel32")]
            private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
    
            // 声明INI文件的读操作函数 GetPrivateProfileString()
            [DllImport("kernel32")]
            private static extern int GetPrivateProfileString(string section, string key, string def, System.Text.StringBuilder retVal, int size, string filePath);
    
            //获取ini文件的路径
            private string sPath = null;
            public IniHelper(string path)
            {
                this.sPath = path;
            }
    
            /// <summary>
            /// 写入INI文件
            /// </summary>
            /// <param name="section">配置节</param>
            /// <param name="key">键名</param>
            /// <param name="value">键值</param>
            public void WriteValue(string section, string key, string value)
            {
                // section=配置节,key=键名,value=键值,path=路径
                WritePrivateProfileString(section, key, value, sPath);
            }
    
            /// <summary>
            /// 读取INI文件配置节下的键
            /// </summary>
            /// <param name="section"></param>
            /// <param name="key"></param>
            /// <returns></returns>
            public string ReadValue(string section, string key)
            {
                // 每次从ini中读取多少字节
                StringBuilder temp = new StringBuilder(255);
                // section=配置节,key=键名,temp=上面,path=路径
                GetPrivateProfileString(section,key,"",temp,255,sPath);
                return temp.ToString();
            }
        }
    }

    Form窗体调用

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using SingleStore.Code;
    
    namespace SingleStore
    {
        public partial class Login : Form
        {
            public Login()
            {
                InitializeComponent();
    
                string IniPath = Directory.GetCurrentDirectory();
    
                //写入ini
                IniHelper ini = new IniHelper(IniPath + "/config.ini");
                ini.WriteValue("StoreShop", "userName", "admin");
                ini.WriteValue("StoreShop", "pwd", "admin");
                ini.WriteValue("StoreShop", "isRePwd", "0");
    
                //读取ini
                string ispwd = ini.ReadValue("StoreShop", "isRePwd");
                string xis = "";
                if (ispwd == "0")
                {
                    xis = "";
                }
                else
                {
                    xis = "";
                }
                MessageBox.Show("用户名:" + ini.ReadValue("StoreShop", "userName") + "
    " +
                    "密码:" + ini.ReadValue("StoreShop", "pwd") + "
    " +
                    "是否记住密码:" + xis);
            }
        }
    }
  • 相关阅读:
    laravel本地化
    laravel加载javascript库
    laravel安装第三方包3rd generators
    openfire的smack和asmack
    openfire+spark+smack实现即时通讯
    openfire开发
    即时通信Spark安装和配置
    ubuntu eclipse CDT 问题
    网络编程TCP总结及实践-C语言
    [Openstack]使用devstack自己主动化安装
  • 原文地址:https://www.cnblogs.com/pingming/p/4108388.html
Copyright © 2020-2023  润新知