各位老大,问一个StreamWriter 的问题 我有个aaa.txt,想把里面的标记字符$title 替换成"abc",不知道該怎么读和写的操作,请指教,另外,这样的读写方法是对所有类型的文本(后缀不同)都起作用的吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我希望的是只改标记符的内容,而其它内容不作改动,假设aaa.txt有一千行,那改其中有标记符的那一行 想做模板分析类吧。网站要改静态的么?$title 不是很好。应为太容易匹配了修改为{$sds:12:212:23$} 或 {$sds:12:212:23} 的形式就好了模板一般是htm文件 生成页面是shtml页面给你个模板分析类的关键函数 void LabelAnalyStarDebug.Star(object obj) { string ArticCont=ControlFile.ShowFile(ControlFile.ReadFile(this.readpath,true)); Regex r = new Regex(this.reg,RegexOptions.IgnoreCase); Match m = r.Match(ArticCont); string biaoqian=string.Empty,returnback=string.Empty; while (m.Success) { Group g = m.Groups[1]; biaoqian=@"{$"+ g.Value + @"$}"; string[] arrpar=g.Value.Split(':'); returnback=this.Execute(ref obj,arrpar[0],arrpar); ArticCont=Regex.Replace(ArticCont,@"\{\$("+ g.Value +@")\$\}",returnback); m = m.NextMatch(); } ControlFile.WriteFile(this.writepath,ArticCont); }他有两个属性 读文件的地址和写文件的地址调用方法为 LabelAnalyStarDebug b=(LabelAnalyStarDebug) new WebForm1_base(this); b.ReadPath=this.Server.MapPath("WebForm1.htm"); b.WritePath=this.Server.MapPath("WebForm1.shtml"); b.Star(); public static string ReadFile(string path,bool istrue) { try { if(!File.Exists(path)) { return null; } else { StreamReader sr= new StreamReader(path,Encoding.GetEncoding(936)); string input=string.Empty; StringBuilder outstr=new StringBuilder(6000); while ((input=sr.ReadLine())!=null) { outstr.Append(input); } sr.Close(); Page page=new Page(); if(istrue) return page.Server.HtmlEncode(outstr.ToString()); else return outstr.ToString(); } } catch { return null; } } 写if(File.Exists(@"c:\abc.txt")){ StreamWriter sr = File.AppendText((@"c:\abc.txt"); sr.WriteLine ("\n"); sr.WriteLine ("TestMessage"); sr.Close();}else{ StreamWriter sr = File.CreateText((@"c:\abc.txt"); sr.Close();} string strTxt ="";读if (File.Exists(Library.Constants.GlobalType.RESLUT_FILE_NAME)){ StreamReader sr = File.OpenText(@"c:\abc.txt"); strTxt = sr.ReadToEnd(); strTxt=strTxt.Replace("$title","abc"); sr.Close();}替换后写进去StreamWriter sw=StreamFile.CreateText(@"c:\abc.txt");sr.Write(strTxt);sw.Close() 文本文件不就是以流的方式读出来的吗又不是XML文件,可以只更新某一部分 各位,我试过以后,发现有点不理想,HTML代码在重新生成后全在一行显示,不会自动换行 aspxbutton JS和服务器代码怎么不能同时运行 ASP.NET遇到问题:System.ArgumentNullException 值不能为空 [浏览器兼容]按钮点击后播放提示声音 VS2005 URL 重写技术 如何遍历文件夹下面所有的文件,包括子文件夹里面的文件? 关于MessageBox ★★急救新手!关于TextBox循环性地获取焦点的问题 FTP域名设置的问题 ADO.net 为什么老是报这个错误? 有关页面访问的问题 session的问题快让我发疯了,还不解决就完蛋了,求高手指点,在线等,问题解决马上给分!!! 求一简单的原代码程序
$title 不是很好。应为太容易匹配了修改为{$sds:12:212:23$} 或 {$sds:12:212:23} 的形式就好了
模板一般是htm文件 生成页面是shtml页面
给你个模板分析类的关键函数 void LabelAnalyStarDebug.Star(object obj)
{
string ArticCont=ControlFile.ShowFile(ControlFile.ReadFile(this.readpath,true));
Regex r = new Regex(this.reg,RegexOptions.IgnoreCase);
Match m = r.Match(ArticCont);
string biaoqian=string.Empty,returnback=string.Empty;
while (m.Success)
{
Group g = m.Groups[1];
biaoqian=@"{$"+ g.Value + @"$}";
string[] arrpar=g.Value.Split(':');
returnback=this.Execute(ref obj,arrpar[0],arrpar);
ArticCont=Regex.Replace(ArticCont,@"\{\$("+ g.Value +@")\$\}",returnback);
m = m.NextMatch();
}
ControlFile.WriteFile(this.writepath,ArticCont);
}
他有两个属性 读文件的地址和写文件的地址
调用方法为 LabelAnalyStarDebug b=(LabelAnalyStarDebug) new WebForm1_base(this);
b.ReadPath=this.Server.MapPath("WebForm1.htm");
b.WritePath=this.Server.MapPath("WebForm1.shtml");
b.Star();
{
try
{
if(!File.Exists(path))
{
return null;
}
else
{
StreamReader sr= new StreamReader(path,Encoding.GetEncoding(936));
string input=string.Empty;
StringBuilder outstr=new StringBuilder(6000);
while ((input=sr.ReadLine())!=null)
{
outstr.Append(input);
}
sr.Close();
Page page=new Page();
if(istrue)
return page.Server.HtmlEncode(outstr.ToString());
else
return outstr.ToString();
}
}
catch
{
return null;
}
}
if(File.Exists(@"c:\abc.txt"))
{
StreamWriter sr = File.AppendText((@"c:\abc.txt");
sr.WriteLine ("\n");
sr.WriteLine ("TestMessage");
sr.Close();
}
else
{
StreamWriter sr = File.CreateText((@"c:\abc.txt");
sr.Close();
}
if (File.Exists(Library.Constants.GlobalType.RESLUT_FILE_NAME))
{
StreamReader sr = File.OpenText(@"c:\abc.txt");
strTxt = sr.ReadToEnd();
strTxt=strTxt.Replace("$title","abc");
sr.Close();
}
替换后写进去
StreamWriter sw=StreamFile.CreateText(@"c:\abc.txt");
sr.Write(strTxt);
sw.Close()
又不是XML文件,可以只更新某一部分