求C#删除txt文件中包含有某一字符串的所有行

yekongswz 2012-01-10 05:15:30
txt文件中包含有如下格式所示的批量数据,我想删除包含有192.168.1.118的所有的行,然后在重新保存,C#代码怎么实现啊??急啊!!!!

2012/1/6 14:25:13,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:14,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:14,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:14,192.168.1.200,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:14,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:15,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:15,192.168.1.134,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:15,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:15,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:44,192.168.1.200,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/6 14:25:51,192.168.1.146,public,161,0,88,3,1,88,2,0,88,2,2,1,4
2012/1/6 14:30:07,192.168.1.200,public,161,0,88,3,0,88,2,1,88,2,2,0,4
2012/1/9 13:48:57,192.168.1.118,public,161,1,88,3,1,88,2,1,88,2,2,1,4
2012/1/9 13:51:26,192.168.1.200,public,161,0,88,3,1,88,2,0,88,2,2,0,4
...全文
868 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyz985 2012-01-11
  • 打赏
  • 举报
回复
var newLines = lines.Select(it=>!it.Contains("192.168.1.118")).JoinText(Environment.NewLine);
sugarbelle 2012-01-10
  • 打赏
  • 举报
回复
str.Contains("192.168.1.118")比正则好用.
铜臂阿铁木 2012-01-10
  • 打赏
  • 举报
回复
估计会有10000个人告诉你用正则表达式
shuots 2012-01-10
  • 打赏
  • 举报
回复
先说个思路:
先使用streamreader中的readline()方法逐行读文件,并存入到一个string中。
如果该行中含有目标字符串(192.168.1.118)则跳过该行(即不将该行存入到string中)。
全部读完之后,再使用File.WriteAllText()将存出来的string重覆盖写入到文件中。
qq598235031 2012-01-10
  • 打赏
  • 举报
回复
string path = @"G:\1.txt";//读取文件txt
List<string> list = new List<string>();
using (FileStream fs = new FileStream(path, FileMode.Open))
{
using (StreamReader sr = new StreamReader(fs))
{
while (!sr.EndOfStream)
{
string sLine = sr.ReadLine();
if (sLine.Length < 1)
{
continue;
}
if(sLine.indexOf("192.168.1.118")>-1)
{
continue;
}
else
{
list.add(sLine);
}

}}
//然后把list的内容写文件 ;?不会?神马?
蝶恋花雨 2012-01-10
  • 打赏
  • 举报
回复
 string path = @"G:\1.txt";//读取文件txt
List<string> list = new List<string>();
using (FileStream fs = new FileStream(path, FileMode.Open))
{
using (StreamReader sr = new StreamReader(fs))
{
while (!sr.EndOfStream)
{
string sLine = sr.ReadLine();
if (sLine.Length < 1)
{
continue;
}
string[] test1 = sLine.Split(',');
if (test1[1].ToString() == "192.168.1.118")
{
//删除此行
}
}
}
}
mizuho_2006 2012-01-10
  • 打赏
  • 举报
回复
遍历每一行,如果该行包括192.168.1.118(str.Contains()函数),就用空格替换(str.Replace()函数)

或者用正则表达式实现。

111,097

社区成员

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

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

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