【问题标题】:get data from txt file and display in a multiline text box从 txt 文件中获取数据并显示在多行文本框中
【发布时间】:2013-10-03 11:16:26
【问题描述】:

我有一个名为:blogPostTextBox 的文本框和一个名为:blogMessage.txt 的文件

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

  • 消息1
  • 消息2
  • 消息3

我想从该 txt 文件中读取数据并使用 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");
    }
}

如何继续代码以使其正常工作?..谢谢你们!

【问题讨论】:

  • 请澄清 - “他的 blogMessage.txt 包含名为 -Message1 -Message2 -Message3 的 3 个文件” - 文件如何包含文件?
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。

标签: c# for-loop textbox while-loop


【解决方案1】:
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 连接行 - 它在文本文件中找到的每一行之后添加新行。

顺便说一句,为什么不能简单地将文件内容分配给文本框?

blogPostTextBox.Text = File.ReadAllText(path);

更新(带循环)

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();

【讨论】:

  • 你是如何使用循环的...? :)
  • @PéBin 为什么它必须是一个循环?确切地说,为什么它必须是您编写的循环?在 string.Join() 中有一个完美优化的循环。
  • 对不起。这是我的一个作品,他们要求我使用 while 或 for 循环...:(
  • 所以你要求我们做你的作业,甚至没有表现出尝试的意愿?你在网上搜索过“C# for loop”吗?
  • @PéBin 你能用字符串代替吗?我觉得你应该试试。仅供参考的字符串可以与+ 运算符连接
猜你喜欢
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 2015-07-05
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2014-04-13
相关资源
最近更新 更多