关于.ini文件内容的修改与查找

a13861353115 2014-09-05 11:14:29
我有一个后缀为.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
...全文
661 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianhou_1729707971 2014-09-06
  • 打赏
  • 举报
回复
C#操作INI文件的修改与查找 //读取文件内容 private static extern int GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName); //读取数据内容 public string ContentReader(string area, string key, string def) { StringBuilder stringBuilder = new StringBuilder(1024); //定义一个最大长度为1024的可变字符串 GetPrivateProfileString(area, key, def, stringBuilder, 1024, str); //读取INI文件 return stringBuilder.ToString(); //返回INI文件的内容 } //窗体加载部分 private void Form1_Load(object sender, EventArgs e) { str = Application.StartupPath + "\\ConnectString.ini"; //INI文件的物理地址 strOne = System.IO.Path.GetFileNameWithoutExtension(str); //获取INI文件的文件名 if (File.Exists(str)) //判断是否存在该INI文件 { server.Text = ContentReader(strOne, "Data Source", ""); //读取INI文件中服务器节点的内容 database.Text = ContentReader(strOne, "DataBase", ""); //读取INI文件中数据库节点的内容 uid.Text = ContentReader(strOne, "Uid", ""); //读取INI文件中用户节点的内容 pwd.Text = ContentReader(strOne, "Pwd", ""); //读取INI文件中密码节点的内容 }//CodeGo.net/ } //进行修改操作 private void button1_Click(object sender, EventArgs e) { if (File.Exists(str)) //判断是否存在INI文件 { WritePrivateProfileString(strOne, "Data Source", server.Text, str); //修改INI文件中服务器节点的内容 WritePrivateProfileString(strOne, "DataBase", database.Text, str); //修改INI文件中数据库节点的内容 WritePrivateProfileString(strOne, "Uid", uid.Text, str); //修改INI文件中用户节点的内容 WritePrivateProfileString(strOne, "Pwd", pwd.Text, str); //修改INI文件中密码节点的内容 MessageBox.Show("恭喜你,修改成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("对不起,你所要修改的文件不存在,请确认后再进行修改操作!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
csz_1987 2014-09-05
  • 打赏
  • 举报
回复
为嘛不用config 的xml格式的做配置文件? ini看起来各种难受。
xian_wwq 2014-09-05
  • 打赏
  • 举报
回复
引用 楼主 a13861353115 的回复:
我有一个后缀为.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
[DllImport("kernel32")] private static extern int GetPrivateProfileInt(string lpApplicationName, string lpKeyName, int nDefault, string lpFileName); [DllImport("kernel32")] private static extern bool GetPrivateProfileString(string lpApplicationName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName); [DllImport("kernel32")] private static extern bool WritePrivateProfileString(string lpApplicationName, string lpKeyName, string lpString, string lpFileName); [DllImport("kernel32")] private static extern bool GetPrivateProfileSection(string lpAppName, string lpReturnedString, int nSize, string lpFileName); [DllImport("kernel32")] private static extern bool WritePrivateProfileSection(string lpAppName, string lpString, string lpFileName); 需要用到上述api,搜相关的文档就可以了
於黾 2014-09-05
  • 打赏
  • 举报
回复
整个读出来,放string里 执行string.replace(":9080",":8080"); 写回去
wind_cloud2011 2014-09-05
  • 打赏
  • 举报
回复
string f=""; string[] txt = File.ReadAllLines("1.ini"); foreach (string s in txt) { if (s.Contains("172.30.0.15:9080")) { f+= s.Replace("172.30.0.15:9080", "172.30.0.14:8080") + "\r\n"; } else { f += s + "\r\n"; } } File.WriteAllText("1.ini",f);
wind_cloud2011 2014-09-05
  • 打赏
  • 举报
回复
你可通过 WritePrivateProfileString直接来写wsdl为 http://172.30.0.14:8080/g3_bs/services/webserver?wsdl 也可以文本文件方式读取每一行,将其中含有 172.30.0.15:9080替换为172.30.0.14:8080
無霜 2014-09-05
  • 打赏
  • 举报
回复
ini文件 [配置信息] IP=172.30.0.14:8090 WritePrivateProfileString("配置信息", "IP", "172.30.0.14:8080", "你的ini文件路径");
qq_20450049 2014-09-05
  • 打赏
  • 举报
回复
using System.Runtime.InteropServices; [DllImport("kernel32.dll")] //调用API函数 private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); [DllImport("kernel32.dll")] //调用API函数 private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); StringBuilder Str= new StringBuilder(100); GetPrivateProfileString("题头", "wsdl", "", Str, 100, "FILENAME.ini"); //双捆膜 //题头 为 []中间的内容 //FILENAME.INI 为 ini的文件名和路径 string s = Str.tostring(); s=s..Replace("9090","8080"); WritePrivateProfileString(题头", "wsdl", s, "FILENAME.ini");

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧