2013-10-03 34 views
0

我叫一个文本框:blogPostTextBox和一个名为:blogMessage.txt得到txt文件,并显示数据在多行文本框

这blogMessage.txt包含3个文本称为

  • MESSAGE1
  • 消息2
  • 消息3

我想读从txt文件和显示终端的数据a使用for循环或while循环,blogPostTextBox中的数据。此外,我需要在每封邮件的末尾使用System.Environment.NewLine,以便每条邮件都显示在blogPostsTextBox的单独一行中。

public partial class _Default : System.Web.UI.Page 
{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     blogPostsTextBox.Text = ""; 
     string blogMessage = File.ReadAllText(Server.MapPath("~") + 
           "/App_Data/blogMessages.txt"); 
    } 
} 

如何让代码继续工作?谢谢!

+2

请澄清 - “他blogMessage.txt包含3个文件名为-Message1 -Message2 -Message3” - 如何可以将文件包含的文件? – kobigurk

+0

已更新..谢谢 –

+1

我已编辑您的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

回答

5
string path = Server.MapPath("~") + "/App_Data/blogMessages.txt"; 
string blogMessage = String.Join(Environment.NewLine, File.ReadLines(path)); 
blogPostTextBox.Text = blogMessage; 

File.ReadLines回报IEnumerable<string>从文件系(即会有你的三个消息)。然后我连接与String.Join的行 - 它在文本文件中找到的每行之后添加新行。

BTW为什么你不能简单地分配文件的内容到文本框?

blogPostTextBox.Text = File.ReadAllText(path); 

UPDATE(带环)

string path = Server.MapPath("~") + "/App_Data/blogMessages.txt"; 
StringBuilder builder = new StringBuilder(); 

foreach(var line in File.ReadLines(path))  
    builder.AppendLine(line); 

blogPostTextBox.Text = builder.ToString(); 
+0

你如何用循环做...? :) –

+1

@PéBin为什么它必须是一个循环?确切地说,为什么它必须是你写的循环?在string.Join()中有一个完美的,优化的循环。 –

+0

对不起。这是我的工作之一,他们要求我使用一段时间或for循环... :( –

相关问题