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;