c#有没有更快的方法可以删除文本中的某一行?

pohan2003 2009-04-03 05:46:14
我现在只会把文本的内容用StreamReader把他读到某个string[],然后再用StreamWriter写回文本,当然我要删除的那一行就不写回文本

我想请问的是,有没有更快更方便的方法,可以删除文本中的某一行呢?
例如有没有像DeleteLine(n)这样子的方法?
我msdn和csdn上找不满意的答案,所以来这请教各位大侠
...全文
262 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pohan2003 2009-04-09
  • 打赏
  • 举报
回复
按照bdmh大的说法,我摸索出下列code:

        
private void button1_Click(object sender, EventArgs e)
{
List<string> lns = new List<string>();//声明一个泛型
using(StreamReader sr=new StreamReader("e:\\temp\\mytest.txt",Encoding.UTF8))
{
string ln;
while ((ln=sr.ReadLine())!=null)
{
lns.Add(ln);
}
}
lns.RemoveAt(2);//指定要删除的行
StreamWriter sw=new StreamWriter("e:\\temp\\mytest.txt",false,Encoding.UTF8);
foreach (string s in lns)
sw.WriteLine(s);
sw.Close();
}


用List来存StreamReader确实比我之前的方法快一点
zyk113229917 2009-04-05
  • 打赏
  • 举报
回复

private void read(int i) //传进你要删除的行
{
StreamReader str = new StreamReader("c:\\1.txt")
int j=0;
if(i>0)
{ while (j<i)//自动找到你要删除的行
{if(str.Read()==换行符)
j++;
}

//这里执行删除操作
}


}


我学的也不好 这只是个思路
danier9687 2009-04-05
  • 打赏
  • 举报
回复
不知道,我也很想知道这个帖子的答案
heruoyong 2009-04-05
  • 打赏
  • 举报
回复
File.ReadAllLines
File.WriteAllLines


可以将这两个方法封装一下,使用起来很简单
bdmh 2009-04-04
  • 打赏
  • 举报
回复
你可以把文本读到一个List中,然后操作List,完毕后再保存

private void button3_Click(object sender, EventArgs e)
{
List<string> lns = new List<string>();//声明一个泛型
using (StreamReader str = new StreamReader("c:\\1.txt"))
{
string ln;
while ((ln = str.ReadLine()) != null)
{
lns.Add(ln);//读到List中
}
}
}
删除时,可以使用lns.RemoveAt(Index),处理完后,你在把这个列表保存到文本文件
mabailin 2009-04-03
  • 打赏
  • 举报
回复
也不知道哦,帮顶
小弟万元户 2009-04-03
  • 打赏
  • 举报
回复
不知道,顶
coodd 2009-04-03
  • 打赏
  • 举报
回复
没有,我对这也挺不满意

111,126

社区成员

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

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

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