简单问题(15分) delete from yourdatabase where yourcolumn=22222 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是指在文件中,不是在database中 如何replace? 我想是否我只能一行一行的读原文件,每读出一行就将该行写入另一个临时文件中去,对于想要删除的行就不写入,读完原文件后,再将原文件删除,然后将临时文件改为原文件名,55555555....,这样做是不是太麻烦了?有无更好的办法呀? 不用一行一行的读:StreamReader sr=new StreamReader(Server.MapPath("index.htm"),Encoding.GetEncoding("GB2312"));sr.ReadToEnd().Replace("22222","");如果有更高的要求可以用正则表达式 试了试,好像不行,是否是对XML才行? string path=HttpContext.Current.Server.MapPath("test.htm"); StreamReader sr=new StreamReader(path,Encoding.GetEncoding("GB2312")); string s=sr.ReadToEnd(); sr.Close(); FileStream sb = new FileStream(path, FileMode.Create); StreamWriter sw=new StreamWriter(sb,Encoding.GetEncoding("GB2312")); s=s.Replace("222222","haha"); sw.WriteLine(s); sw.Close(); sb.Close();--楼主之所以不行,是因为没有sw.WriteLine(s);吧!那怎么可以呢! 我上面的代码是好用的哦。如果担心产生空行,可以s=s.Replace("\n222222\n","haha");这个我没有测试过 我觉得 shixueli(渴望成功) 这方法是相对比较好的啦! to:shixueli(渴望成功) 用你的方法试了试的确可以,但是又出现了一个问题。因为在原文件的每行后面都有回车和换行符,用replace("222222"+"\r\n","")后,原文件变成了 11111 333333但现在的问题是,现在我又向文件写入一行'44444'是,产生了一个空行,文件变成了 11111 33333 (产生了一个空行) 44444这样反复操作几次后,该文件产生了大量空行,给以后的操作带来了不变,对于这个问题是否有办法解决呢?当然,在以后的操作中,当我读到空行是可以不处理,但总是觉得不太爽呀,期待进一步的答复! 呵呵,不管怎样,准备给分了。 如果你是在原来的地方写入一行那么没有必要先删除再插入,你完全可以替换的嘛:replace("222222"+"44444")如果不是,那么你再插入一行的时候就不要用插入回车了呗,比如不要用WriteLine()方法,而要用Write,因为前者会自动的加上回车符。--Good Luck! hehe, 我不是想在原来的地方写入一行哦,我插入每一行时,故意给了一个"\r\n",因为原文件中的每一行是我想要的一条记录,这样在以后的操作中取记录时比较方便,自所以提这个问题是因为在操作过程中,会要不断删除与增加记录,当然用数据库最好,但我想用数据库的话太浪费了,因为我只需要这样的一个简单的表哦! 随便问一下,如何将s中最后面的"/r/n"的去掉 如果只是实现这个功能的话,比较简单和容易想到的方法是:string t="ttt\n\r";t=t.Substring(0,t.Length-2);Response.Write(t); 你还可以用正则表达式:string t="ttt\n\r";t=Regex.Replace(t,"(?<text>.*?)\\n\\r","${text}",RegexOptions.IgnoreCase);Response.Write(t);--要求using System.Text.RegularExpressions; 你还可以用正则表达式:string t="ttt\n\r";t=Regex.Replace(t,"(?<text>.*?)\\n\\r","${text}",RegexOptions.IgnoreCase);Response.Write(t);--要求using System.Text.RegularExpressions; to:all and shixueli(渴望成功) 谢谢你的帮助,你真是热心人哦,问题已解决,replace后,再将s中最后面的"/r/n"的去掉即可,呵呵,3Q you! 结贴给分! 分享一个简单的资源管理器程序,主要是演示下LINQ在C#开发中的运用 出库单怎么保存数据库 vs2003编译64位dll 菜鸟小弟想实现这么一个功能,大哥们指点下,谢谢 C# 如何在一个窗口中调用另外一个窗体的InitializeComponent方法? (请教)PictureBox中图像按比例缩放的问题 有关二进制序列化和反射的极难问题,求助~~~~~~~~~~~ datagridview有数据加载时候会触发那个事件? 求助!【请教问题】C# 实现自动登陆支付宝 求教关于水晶报表中动态画线问题? 如果你收到被骂的短消息,请进来一下。 C#工程中的资源在哪里啊,比如ICON的图片?
我想是否我只能一行一行的读原文件,每读出一行就将该行写入另一个
临时文件中去,对于想要删除的行就不写入,读完原文件后,再将原文件
删除,然后将临时文件改为原文件名,55555555....,这样做是不是太麻烦了?
有无更好的办法呀?
StreamReader sr=new StreamReader(Server.MapPath("index.htm"),Encoding.GetEncoding("GB2312"));
sr.ReadToEnd().Replace("22222","");如果有更高的要求可以用正则表达式
string s=sr.ReadToEnd();
sr.Close();
FileStream sb = new FileStream(path, FileMode.Create);
StreamWriter sw=new StreamWriter(sb,Encoding.GetEncoding("GB2312"));
s=s.Replace("222222","haha");
sw.WriteLine(s);
sw.Close();
sb.Close();--
楼主之所以不行,是因为没有sw.WriteLine(s);吧!
那怎么可以呢!
s=s.Replace("\n222222\n","haha");
这个我没有测试过
用你的方法试了试的确可以,但是又出现了一个问题。因为在原文件的每行后面都有回车和换行符,用replace("222222"+"\r\n","")后,原文件变成了
11111
333333
但现在的问题是,现在我又向文件写入一行'44444'是,产生了一个空行,文件变成了
11111
33333
(产生了一个空行)
44444
这样反复操作几次后,该文件产生了大量空行,给以后的操作带来了不变,对于这个
问题是否有办法解决呢?当然,在以后的操作中,当我读到空行是可以不处理,但总
是觉得不太爽呀,期待进一步的答复!
呵呵,不管怎样,准备给分了。
replace("222222"+"44444")如果不是,那么你再插入一行的时候就不要用插入回车了呗,比如不要用WriteLine()方法,而要用Write,因为前者会自动的加上回车符。--
Good Luck!
我不是想在原来的地方写入一行哦,我插入每一行时,故意给了一个"\r\n",
因为原文件中的每一行是我想要的一条记录,这样在以后的操作中取记录时比较
方便,自所以提这个问题是因为在操作过程中,会要不断删除与增加记录,
当然用数据库最好,但我想用数据库的话太浪费了,因为我只需要这样的一个
简单的表哦!
string t="ttt\n\r";
t=t.Substring(0,t.Length-2);
Response.Write(t);
string t="ttt\n\r";
t=Regex.Replace(t,"(?<text>.*?)\\n\\r","${text}",RegexOptions.IgnoreCase);
Response.Write(t);
--
要求using System.Text.RegularExpressions;
string t="ttt\n\r";
t=Regex.Replace(t,"(?<text>.*?)\\n\\r","${text}",RegexOptions.IgnoreCase);
Response.Write(t);
--
要求using System.Text.RegularExpressions;
谢谢你的帮助,你真是热心人哦,问题已解决,replace后,再将s中最后面的"/r/n"的去掉即可,呵呵,3Q you! 结贴给分!