C#论坛-玄机论坛-C#论坛-玄机宝盒-玄机类库-C#

 找回密码
 关闭注册

QQ登录

只需一步,快速开始

查看: 5449|回复: 11

[剑走偏锋] C#读写ini

[复制链接]
君临 发表于 2014-12-30 15:22:35 | 显示全部楼层 |阅读模式

玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
如有疑问,请加入官方群询问

您需要 登录 才可以下载或查看,没有帐号?关闭注册

x
玄机论坛 C#读写ini
[mw_shl_code=csharp,true]using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace helper
{

    /// <summary>
    /// ini文件读与写
    /// </summary>
    public class ClsIniFile
    {
        //文件INI名称
        public string Path;
        ////声明读写INI文件的API函数
        [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);
        //类的构造函数,传递INI文件名
        public ClsIniFile(string inipath){ Path = inipath; }
        /// <summary>
        /// 写入INI文件
        /// </summary>
        /// <param name="Section">配置节</param>
        /// <param name="Key">键名</param>
        /// <param name="Value">键值</param>
        public void IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, this.Path);
        }

        /// <summary>
        /// 读取制定INI文件键值
        /// </summary>
        /// <param name="Section">配置节</param>
        /// <param name="Key">键名</param>
        /// <returns></returns>
        public string IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.Path);
            return temp.ToString();
        }
    }
}[/mw_shl_code]

调用实例类

[mw_shl_code=csharp,true]using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using SetRouter.RouterModel;

namespace helper
{
    class StringUtility
    {
        /// <summary>
        /// 写ini
        /// </summary>
        /// <param name="iniPath">配置文件路径</param>
        /// <param name="rd">实体对象模型</param>
        public static void wirtini(string iniPath, Rmod rd)
        {
            try
            {
                ClsIniFile cl = new ClsIniFile(iniPath);
//第一个参数为节点,第二个为字段,第三个为值
                cl.IniWriteValue("RouterConfig", "LoginUser", rd.LoginUser);
                cl.IniWriteValue("RouterConfig", "LoginPwd", rd.LoginPwd);
                cl.IniWriteValue("RouterConfig", "LoginIp", rd.LoginIp);
                cl.IniWriteValue("RouterConfig", "WirelessSSID", rd.WirelessSSID);
                cl.IniWriteValue("RouterConfig", "WirelessPwd", rd.WirelessPwd);
                cl.IniWriteValue("RouterConfig", "PppoeName", rd.PppoeName);
                cl.IniWriteValue("RouterConfig", "PppoePwd", rd.PppoePwd);
                MessageBox.Show("配置文件写入成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            catch (Exception ex)
            {
                MessageBox.Show("写入配置文件失败.!" + "\n" + ex.Message);
                return;
            }

        }

        /// <summary>
        /// 读ini
        /// </summary>
        /// <param name="iniPath">配置文件路径</param>
        /// <returns>返回实体对象</returns>
        public static Rmod Readini(string iniPath)
        {
            try
            {
                Rmod rd = new Rmod();
                ClsIniFile ini = new ClsIniFile(iniPath);
                rd.LoginUser = ini.IniReadValue("RouterConfig", "LoginUser").Trim();
                rd.LoginPwd = ini.IniReadValue("RouterConfig", "LoginPwd").Trim();
                rd.LoginIp = ini.IniReadValue("RouterConfig", "LoginIp").Trim();
                rd.WirelessSSID = ini.IniReadValue("RouterConfig", "WirelessSSID").Trim();
                rd.WirelessPwd = ini.IniReadValue("RouterConfig", "WirelessPwd").Trim();
                rd.PppoeName = ini.IniReadValue("RouterConfig", "PppoeName").Trim();
                rd.PppoePwd = ini.IniReadValue("RouterConfig", "PppoePwd").Trim();
                return rd;
            }
            catch (Exception ex)
            {
                MessageBox.Show("读取配置文件内容失败.!" + "\n" + ex.Message);
                return null;
            }


        }
    }
}
[/mw_shl_code]
ini配置如下
QQ图片20141230152020.jpg
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复

使用道具 举报

老段啦 发表于 2014-12-30 15:41:10 | 显示全部楼层
太感谢老大了  终于解决了
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

老段啦 发表于 2014-12-30 15:46:43 | 显示全部楼层
同志们,我犯的错误原来就是一个数据类型的问题,经老大指点 ,终于知道为啥了! QQ截图20141230154043.png
上面是VB对win32api的说明;
string大家好理解
String,指定一个字串缓冲区。这个在C#是stringBulider;
Long型一定要注意,VB和C#是有区别的。long型在VB中标识32位整数,所以我们在写这个数据类型的时候要用int,不能用long型。如果用Long型的话,会读取报错的。

老大不说这谁能知道。。。。。。。。。
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

971790945 发表于 2015-1-2 00:10:20 | 显示全部楼层
看代码君临写的拨号器
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

xuesonggg 发表于 2016-1-12 14:09:45 | 显示全部楼层
挺好的哦,哈哈,学过
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

jacksonlao 发表于 2016-5-6 14:33:25 | 显示全部楼层
很好用,谢谢!
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

hehe5487 发表于 2016-6-16 13:11:16 | 显示全部楼层
gfdz打广告
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

livehu5188 发表于 2017-11-1 14:05:31 | 显示全部楼层
谢谢分享 谢谢
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

huang9126 发表于 2017-11-3 12:03:44 | 显示全部楼层
可以把文件名也变成一个参数,这样就应该可以做成一个静态类了。
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

iesoft 发表于 2019-4-1 23:12:22 | 显示全部楼层
厉害!11111111111
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 关闭注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

QQ|玄机论坛

GMT+8, 2024-4-19 09:02 , Processed in 0.225864 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表