Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打开多行文本文件并仅读取其中的特定行。并将值发送到文本框_C#_Textbox_Save - Fatal编程技术网

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

C# 打开多行文本文件并仅读取其中的特定行。并将值发送到文本框,c#,textbox,save,C#,Textbox,Save,我创建了一个生成多行文本文件的代码 我想实现的是只读取特定的行,并将该值发送到特定的文本框 以下是我的表格: 我的文本文件示例和我想要实现的内容请参见以下内容: 请看下面我的代码: var open = new OpenFileDialog(); open.Title = "Open File"; open.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";

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

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

以下是我的表格:

我的文本文件示例和我想要实现的内容请参见以下内容:

请看下面我的代码:

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

谢谢所有愿意帮忙的人

您只需按顺序阅读每一行:

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;
}
我加了??空,因此如果read.ReadLine返回null,我们将把textbox值设置为空字符串。到达文件末尾时,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;
    }
}

这实际上是一个要求,在寻求帮助之前,你至少要自己做一些努力。你写过任何代码吗?那么,如果你知道如何生成一个文件,你在读取它时有什么问题?你尝试了什么,你的代码在哪里?对不起,我忘了发布,因为我刚离开座位。无论如何,我有一个表单,它包含几十个文本框。因此,我使用的代码是它可以读取文本文件,但它不能设置文本中每一行的值,以便在每个文本框中发送。使用ReadLine有什么问题?每次调用它时,它都会前进到下一行,直到返回null,这意味着您已到达文件的末尾。@john Sample第一行转到textbox1.text,然后依此类推。我试图编写代码,但无法理解。不,我来试试你的密码,约翰。我忘记了这个数组,我以前从未使用过它。我会让你知道你的代码是否有效。你的代码有效。但是这些值在文本框中没有居中。为什么?我确实在我的文本框中查看了所有的文本框都对齐到中心。我尝试了这个方法,但仍然没有将值居中X1TB.textalalign=HorizontalAlignment.Center;