c# winform 关于.ini文件内容的修改与查找 5

我有一个后缀为.ini文件,现在想将该文件中如下内容中的172.30.15:9080改为172.30.0.14:8080请大家提供点思路或者详细代码,万分感谢~~~~ws... 我有一个后缀为.ini文件,现在想将该文件中如下内容中的172.30.15:9080 改为172.30.0.14:8080请大家提供点思路或者详细代码,万分感谢~~~~
wsdl=http://172.30.0.15:9080/g3_bs/services/webserver?wsdl
url=http://172.30.0.15:9080/g3_bs/services/webserver
port=CXFServiceImplPort
service=CXFServiceImplService
downloadurl=http://172.30.0.15:9080/g3_bs/download2
展开
 我来答
注册_帐号
2014-09-05 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:108万
展开全部

using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace PIS.Center.LocalStorage
{
    internal class IniOperator
    {
        //声明kernel32.dll函数  
        private readonly String _iniPath;

        /// <summary>
        ///     构造方法
        /// </summary>
        public IniOperator()
        {
            _iniPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "local.db");

            if (!File.Exists(_iniPath))
            {
                using (File.Create(_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);


        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(String section, String key, String defVal, Byte[] retVal, int size, String filePath);

        [DllImport("kernel32")]
        private static extern uint GetLastError();

        /// <summary>
        ///     写入INI文件
        /// </summary>
        /// <param name="section">Section</param>
        /// <param name="key">Key</param>
        /// <param name="value">Value</param>
        public void IniWriteValue(String section, String key, String value)
        {
            UInt32 snapshot = GetLastError();
            
            WritePrivateProfileString(section, key, value, _iniPath);

            if (snapshot != GetLastError())
            {
                Console.WriteLine("GetLastError :" + GetLastError());
            }
        }


        /// <summary>
        ///     读出INI文件
        /// </summary>
        /// <param name="section">Section</param>
        /// <param name="key">Key</param>
        public String IniReadValue(String section, String key)
        {
            var result = new StringBuilder(256);

            GetPrivateProfileString(section, key, null, result, 256, _iniPath);

            return result.ToString();
        }

        public String[] IniReadSection()
        {
            var sectionBytes = new Byte[255];
            GetPrivateProfileString(null, null, "", sectionBytes, 255, _iniPath);
            //编码所有key的String类型

            var sectionString = new ASCIIEncoding().GetString(sectionBytes);

            //获取key的数组
            return sectionString.Split(new char[1] { '\0' });
        }

        public String[] IniReadKeys(String section)
        {
            var keyBytes = new Byte[255];
            GetPrivateProfileString(section, null, "", keyBytes, 255, _iniPath);
            //编码所有key的String类型

            var keyString = new ASCIIEncoding().GetString(keyBytes);

            //获取key的数组
            return keyString.Split(new char[1] { '\0' });
        }
    }
}



参照这个类,对根据section和key取出值,修改后再次写入

TableDI
2024-07-18 广告
在上海悉息信息科技有限公司,我们深知Excel在数据处理中的重要作用。在Excel中引用不同工作表(sheet)的数据是常见的操作,这有助于整合和分析跨多个工作表的信息。通过在工作表名称前加上感叹号“!”,您可以轻松地引用其他工作表中的数据... 点击进入详情页
本回答由TableDI提供
爱夜009
2014-09-05 · TA获得超过191个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:208万
展开全部
1.文件小的话直接读出了到string 数组中 然后用replace,
2.文件大(超过几M)的话,新建一个文件,然后按块读取ini, 使用replace 写入到新文件中 ,重复知道ini 结束; 将 ini 删除,将新文件重命名为ini ok
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无伤情痛
2014-09-05
知道答主
回答量:56
采纳率:0%
帮助的人:17.5万
展开全部
string iniStr= System.IO.File.ReadAllText("路径");
iniStr.Replace("172.30.15:9080", "172.30.0.14:8080");
System.IO.File.OpenWrite("路径");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式