打开多行文本文件并仅读取其中的特定行。并将值发送到文本框

Posted

技术标签:

【中文标题】打开多行文本文件并仅读取其中的特定行。并将值发送到文本框【英文标题】: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 然后等等。我试图编码,但我想不通。 (这里是菜鸟) 【参考方案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;"

以上是关于打开多行文本文件并仅读取其中的特定行。并将值发送到文本框的主要内容,如果未能解决你的问题,请参考以下文章

读取特定行中的值(可变数量的值)并将它们存储在数组中

打开 VS Code 并打开一个空白文本文件

delphi写多行文本文件操作

awk 模式可以匹配多行吗?

Matlab读取文本文档txt文件

如何在 Informix 中打开和读取文件