【问题标题】:Open multi lined text file and read only an specific line in it. and send the value to a textbox打开多行文本文件并仅读取其中的特定行。并将值发送到文本框
【发布时间】:2018-03-07 08:37:42
【问题描述】:

我创建了一个生成多行文本文件的代码。

我想要实现的是只读取特定的行并将该值发送到特定的文本框。

下面是我的表格:

我的文本文件示例和我想要实现的目标请见下文:

请看下面我的代码:

            var open = new OpenFileDialog();

        open.Title = "Open File";

        open.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";

        if (open.ShowDialog() == DialogResult.OK)
        {

            FilePathLB.Text = open.InitialDirectory + open.FileName;

            StreamReader read = new StreamReader(File.OpenRead(open.FileName));

            //X1TB.Text = File.ReadLines(open.FileName).Skip(1).Take(1).First();
            //X1TB.Text = read.ReadLine();
            X1TB.Text = read.ReadLine();




            read.Dispose();
        }

感谢所有愿意提供帮助的人。

【问题讨论】:

  • 在寻求帮助之前,您至少需要自己做出一些努力。你写过代码吗?
  • 那么,如果您知道如何生成文件,那么您在读取它时具体遇到了什么问题?你试过什么,你的代码在哪里?
  • 对不起,我忘了发布它,因为我刚刚离开了我的座位。无论如何,我有包含几十个文本框的表单。所以我使用的代码是它可以读取文本文件,但它不能设置文本中每一行的值以发送到每个文本框中。
  • 使用ReadLine()有什么问题?每次调用它时,它都会前进到下一行,直到返回 null(这意味着您已经到达文件末尾)。
  • @john Sample 第一行转到 textbox1.text 然后等等。我试图编码,但我想不通。 (这里是菜鸟)

标签: c# textbox save


【解决方案1】:

您可以简单地按顺序读取每一行:

using (StreamReader read = new StreamReader(File.OpenRead(open.FileName)))
{
    X1TB.Text = read.ReadLine() ?? string.Empty;
    X2TB.Text = read.ReadLine() ?? string.Empty;
    X3TB.Text = read.ReadLine() ?? string.Empty;
}

我添加了?? string.Empty,这样如果read.ReadLine() 返回null,我们会将文本框值设置为空字符串。 read.ReadLine() 到达文件末尾时返回 null。

或者,您可以将所有文本框放在一个数组中:

var textboxes = new [] { X1TB, X2TB, X3TB };
using (StreamReader read = new StreamReader(File.OpenRead(open.FileName)))
{
    foreach (var textbox in textboxes)
    {
        textbox.Text = read.ReadLine() ?? string.Empty;
    }
}

【讨论】:

  • 我会试试你的代码 john。我忘记了这个数组,我以前从未使用过它。如果您的代码有效,我会通知您。
  • 您的代码有效。但是这些值不在文本框中居中。为什么?我确实在我的文本框中查看了所有内容都与中心对齐。我试过了,但值仍然没有居中 "X1TB.TextAlign = Horizo​​ntalAlignment.Center;"
猜你喜欢
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
  • 2013-03-23
相关资源
最近更新 更多