问一个从文本文件读出数据后的显示问题!

奥斯特洛夫司机 2006-10-25 10:55:35
一开始我建立一个log.txt文件,然后输入内容,代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!File.Exists(@"C:\Inetpub\wwwroot\ThisWeek\log.txt"))
{
File.Create(@"C:\Inetpub\wwwroot\ThisWeek\log.txt");
this.lblTextFileName.Text="log.txt";
Response.Write("<script>alert('文件创建成功!!!')</script>");
}
}

private void btnInsertTxt_Click(object sender, System.EventArgs e)
{
using (StreamWriter sw = new StreamWriter(@"C:\Inetpub\wwwroot\ThisWeek\log.txt"))
{
// Add some text to the file.
sw.Write("插入时间为:");
sw.WriteLine(DateTime.Now);
sw.WriteLine("你输入的文本内容为:");
sw.WriteLine("-------------------");
// Arbitrary objects can also be written to the file.
string sMystr="";
sMystr=this.txtData.Text.ToString();
sw.WriteLine(sMystr);
}
Response.Write("<script>alert('文本添加成功!!!')</script>");
}
接着我想把我输入的内容在一个textbox中显示一下:
private void btnShow_Click(object sender, System.EventArgs e)
{
try
{
// Open the file to read from.
using (StreamReader sr = File.OpenText(@"C:\Inetpub\wwwroot\ThisWeek\log.txt"))
{
this.txtShow.Text="";
string sReadText = "";
while ((sReadText = sr.ReadLine()) != null)
{
this.txtShow.Text+=sReadText.ToString();
}

}
}
catch (Exception excep)
{
// Let the user know what went wrong.
Response.Write("<script>alert('无此文件!!!')</script>");
}
}
结果得到的是按行输出的内容,我想要的格式是,按照输入的格式!
如果文本文件内容为:
插入时间为:2006-10-25 10:40:54
你输入的文本内容为:
-------------------
guozi
guozi
guozi
guozi
guozi
guozi
guozi
guozi
而在textbox显示的为:
插入时间为:2006-10-25 10:40:54 你输入的文本内容为:-------------------guoziguoziguoziguoziguozi
我想要文本文件内的内容与格式,不知道怎么得到,谢谢
...全文
117 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
king5281273 2007-01-24
  • 打赏
  • 举报
回复
StreamReader sr=new StreamReader(logUrl);
while(sr.Peek()>-1)
{
Response.Write(sr.ReadLine());
Response.Write("<br>");
}
sr.Close();
superliu1122 2006-10-25
  • 打赏
  • 举报
回复
同意 icehawk(我是一只小小鸟)
用sr.ReadLine()读出来的数据是没有最后的换行符的
所以sReadText.ToString().Replace("\n","<br>");实际上什么都不会做
this.txtShow.Text = sr.ReadToEnd();是最简单的方法
icehawk 2006-10-25
  • 打赏
  • 举报
回复
sReadText += "\n";
this.txtShow.Text+=sReadText.ToString().Replace("\n","<br>");

  • 打赏
  • 举报
回复
感谢小鸟,弄出来了
this.txtShow.Text+=sReadText.ToString()+ "\n\r";这句话就可以!
因为读出来一行数据,末尾的换行没有了,自己手动加上吧
经典:因为读出来一行数据,末尾的换行没有了
疑问:去哪了?
readline怎么个读法?
  • 打赏
  • 举报
回复
我按照啥叫郁闷的写法
while ((sReadText = sr.ReadLine()) != null)
{
this.txtShow.Text+=sReadText.ToString().Replace("\n","<br>");;
}
然而没有变化,我textbox是设置的多行显示!
stormwen 2006-10-25
  • 打赏
  • 举报
回复
学习学习,帮你顶
icehawk 2006-10-25
  • 打赏
  • 举报
回复
this.txtShow.Text+=sReadText.ToString();
因为读出来一行数据末尾的换行没有了,自己手动加上吧
this.txtShow.Text += sReadText.ToString() + "\n\r";

或者直接this.txtShow.Text = sr.ReadToEnd();

lytone52 2006-10-25
  • 打赏
  • 举报
回复
1.把textbox的textmode改成multiline
2.把字符串这样处理一下 newString = oldString.Replace("\n","<br>");
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-25 10:55
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。